V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
cheshirecat
V2EX  ›  git

Git 真是反人类!!!

  •  
  •   cheshirecat · 2012-08-26 21:50:39 +08:00 · 7580 次点击
    这是一个创建于 4505 天前的主题,其中的信息可能已经有所发展或是发生改变。
    到底是什么东西啊。

    https://github.com/cheshirecats/CuriousWall

    请看。几个月没碰过本地的任何一个文件,登陆上去居然说有几个 uncommitted changes。看了一下 diff 根本啥区别都没有!怎么就说是整个文件全部不一样了呢???

    于是我只想把本地的改动全部炸掉,怎么这么简单的事情都不可能?删掉本地的目录和项目重新下载,居然还是这几个文件 uncommitted???

    I dont understand. Not changed at all.

    好吧。于是 commit 。然后就根本没办法 merge 另外一个贡献者之前的改动了,因为这样就明显冲突了。

    这是我二十年来见过的最反人类的软件。没有之一。整个命令集都是变态。SVN 多简单清晰好用。
    48 条回复    1970-01-01 08:00:00 +08:00
    hzlzh
        1
    hzlzh  
       2012-08-26 21:52:29 +08:00
    你检查过编码格式有无变更?如:utf-8 -> utf-8 (without BOM)
    通常是编辑器造成
    noevil
        2
    noevil  
       2012-08-26 21:54:08 +08:00
    看来我不是人类。
    harmy
        3
    harmy  
       2012-08-26 21:56:52 +08:00
    先就事论事,是不是在不同的操作系统下提交过?有可能是换行符的问题。
    cheshirecat
        4
    cheshirecat  
    OP
       2012-08-26 21:57:15 +08:00
    @hzlzh 这个也怀疑过,但是根本就没有打开过文件,修改日期都是旧的。

    @noevil 哈哈哈哈。
    cheshirecat
        5
    cheshirecat  
    OP
       2012-08-26 21:59:35 +08:00
    现在只想把本地和整个branch全部炸掉,全部一切内容换成

    https://github.com/christofian/CuriousWall

    该怎么做啊啊啊。
    hzlzh
        6
    hzlzh  
       2012-08-26 21:59:57 +08:00   ❤️ 1
    @cheshirecat 那你就考虑下3楼的说法,行尾格式有误。
    打开行尾查看即可:
    harryxu
        7
    harryxu  
       2012-08-26 22:00:44 +08:00
    这个问题我也碰到过,应该说和git本身没什么关系。
    如果是windows下的乌龟git,可能会在pull的时候自动转编还是换行符什么的,另外再检查下是不是文件权限有变化。
    skydiver
        8
    skydiver  
       2012-08-26 22:01:57 +08:00   ❤️ 1
    @cheshirecat 是不是删掉原来的,直接重新clone一份就行了
    feelinglucky
        9
    feelinglucky  
       2012-08-26 22:02:14 +08:00
    我承认我是标题党,我承认我只是看来评论的
    cheshirecat
        10
    cheshirecat  
    OP
       2012-08-26 22:02:15 +08:00
    @harmy @hzlzh 一个月前就有这种莫名其妙的 uncommited,commit 之后发现 diff 根本是空的,完全无法理解。这一个月来一次都没有打开过本地的文件。
    cheshirecat
        11
    cheshirecat  
    OP
       2012-08-26 22:02:53 +08:00
    @skydiver 不行。删掉了本地的项目和目录重新clone居然还是这五个文件uncommitted。于是我就不得不必须吐槽了。
    9hills
        12
    9hills  
       2012-08-26 22:04:29 +08:00
    @cheshirecat 在windows用git的苦逼男,hoho
    cheshirecat
        13
    cheshirecat  
    OP
       2012-08-26 22:04:35 +08:00
    @harryxu 这个解释倒有点可能。怎么这么差的软件都可以存在???我想应该是因为根本没有人在 windows 下面用吧。
    hzlzh
        14
    hzlzh  
       2012-08-26 22:05:22 +08:00
    @cheshirecat 建议你先把这次的更改备份,然后把github的回滚,然后重新checkout出来,再覆盖上去之后提交,这时diff应该就是差异而非整个文件了。
    cheshirecat
        15
    cheshirecat  
    OP
       2012-08-26 22:06:20 +08:00
    @hzlzh 现在只想把本地和整个branch全部炸掉,全部一切内容换成 https://github.com/christofian/CuriousWall 的,该怎么做呢?这个 git 的文档和命令集太莫名其妙了。
    hzlzh
        16
    hzlzh  
       2012-08-26 22:06:46 +08:00
    @cheshirecat Win下的Git客户端那么新,据说很好用。另外你用的什么编辑器
    harryxu
        17
    harryxu  
       2012-08-26 22:06:47 +08:00
    不是软件差的问题,msysgit还是乌龟git(具体我记不清了)在安装的时候有个选项,可以让你选择文件换行符还是编码的转换,有个选项是推荐跨平台使用时选的,你重装下,安装过程中仔细看下提示再选,然后再clone看下。
    hzlzh
        18
    hzlzh  
       2012-08-26 22:08:27 +08:00
    @cheshirecat 把本地删除,从新fork或者clone
    cheshirecat
        19
    cheshirecat  
    OP
       2012-08-26 22:10:03 +08:00
    @hzlzh @harryxu 其实我用的是 GitHub 官方的那个新出的 windows 工具 ... 界面一看就特别弱的样子。看来必须换。

    编辑器是 notepad++,UTF-8 without BOM。
    cheshirecat
        20
    cheshirecat  
    OP
       2012-08-26 22:11:07 +08:00
    @hzlzh 从前删除本地之后还是阴魂不散。你试试 GitHub 的这个东西就知道有多烂了。我去换个。
    harryxu
        21
    harryxu  
       2012-08-26 22:12:03 +08:00
    @cheshirecat github的那个我就没用过了,我在windows下用的是msysgit+乌龟git,现在最新的用起来还不错的,没啥问题。
    cheshirecat
        22
    cheshirecat  
    OP
       2012-08-26 22:17:08 +08:00
    故事的起因是这个:

    https://github.com/cheshirecats/CuriousWall/pull/3

    GitHub 说 "This pull request cannot be automatically merged."

    What the bloody hell? 难道同时改多个文件就不能自动merge了?现在怎么才能merge?......
    bolv88
        23
    bolv88  
       2012-08-26 22:18:52 +08:00
    用着 还行
    clowwindy
        24
    clowwindy  
       2012-08-26 22:21:35 +08:00   ❤️ 3
    http://gist.github.com/3480048

    It's your own fault. Take it easy.
    hzlzh
        25
    hzlzh  
       2012-08-26 22:23:31 +08:00   ❤️ 1
    @cheshirecat 既然是NP++ 编辑器,我基本确定你的问题是行尾符号转换造成的文件差异。
    看图吧:打开这个现实全部隐藏符号的选项,然后你分别找到那两个有区别的文件,瞧瞧结尾就是了。

    hzlzh
        26
    hzlzh  
       2012-08-26 22:25:23 +08:00
    @cheshirecat 25楼正解,26楼是解决方案。
    cheshirecat
        27
    cheshirecat  
    OP
       2012-08-26 22:25:36 +08:00
    @clowwindy 嗯,现在的解释应该是 GitHub 的那个窗口编辑代码后会自动换掉换行符,所以就和本地的对不上了。
    Rabbit52
        28
    Rabbit52  
       2012-08-26 22:25:48 +08:00
    文件权限检查,关掉就没有了
    zyyzj
        29
    zyyzj  
       2012-08-26 22:31:28 +08:00
    另有一种可能性是:文件权限。
    选项:
    git config --system core.fileMode false
    禁用Git对本地权限的跟踪。
    在Widnwos下,安装cygwin使用git更靠谱。
    hzlzh
        30
    hzlzh  
       2012-08-26 22:31:48 +08:00
    话说今晚我真够闲的,还下载了个NP++来折腾。
    qq286735628
        31
    qq286735628  
       2012-08-26 22:57:50 +08:00
    我之前也遇到这样的问题,尤其在win和ubuntu下面皆同步过代码后,特别严重~
    后来网上发现,git默认把文档权限也设置在内,例如ubuntu里面,如果文档从777变成了755,那么就会一片红一片绿
    hbc
        32
    hbc  
       2012-08-26 23:05:29 +08:00
    低端黑的感觉……
    imcotton
        33
    imcotton  
       2012-08-26 23:07:34 +08:00
    git config --global core.autocrlf false
    qq286735628
        34
    qq286735628  
       2012-08-26 23:33:57 +08:00
    @hzlzh ST2能够像NP++那样查看换行符吗?
    cheshirecat
        35
    cheshirecat  
    OP
       2012-08-27 00:04:06 +08:00
    @hbc 很赚钱的感觉...... :D :D :D
    hbc
        36
    hbc  
       2012-08-27 00:06:12 +08:00   ❤️ 1
    @cheshirecat 哈哈,快给我回血~
    NemoAlex
        37
    NemoAlex  
       2012-08-27 00:17:07 +08:00
    不用 Windows 就无烦恼了
    Air_Mu
        38
    Air_Mu  
       2012-08-27 00:20:51 +08:00
    GIT != GITHUB
    cloudzhou
        39
    cloudzhou  
       2012-08-27 00:23:07 +08:00
    权限和换行符,还有编码是麻烦的问题,作为一个兼职运维工程师对此深有感触,解决方法就是尽量使用单一环境,哈哈。我是不是能在这里推荐一下 https://www.gitshell.com/
    hzlzh
        40
    hzlzh  
       2012-08-27 09:38:08 +08:00
    @qq286735628 可以,见26楼图
    hanf
        41
    hanf  
       2012-08-27 10:23:37 +08:00
    都是一水的苹果啊,是不是做web开发的多呢
    breestealth
        42
    breestealth  
       2012-08-27 12:01:04 +08:00
    标题党到这个程度,也算是不容易了。
    ant_sz
        43
    ant_sz  
       2012-08-27 12:49:39 +08:00
    如果Git也反人类的话,那这个世界上没有啥好软件了。

    SVN那个水准的版本控制已经是上个时代的产品了,自从git出现,望风披靡。该被淘汰的总是会被淘汰的咯
    zaolian
        44
    zaolian  
       2012-08-27 13:02:59 +08:00
    @hanf 这两件事之间有什么必然的联系吗?请指教
    likuku
        45
    likuku  
       2012-08-27 13:08:19 +08:00
    写脚本,md5校验文件,比对md5码。
    likuku
        46
    likuku  
       2012-08-27 13:09:15 +08:00
    @hanf 作Linux/BSD的SA和脚本编程也是水果很方便~
    mcfog
        47
    mcfog  
       2012-08-27 17:05:50 +08:00
    我是来围观的
    paloalto
        48
    paloalto  
       2012-08-27 18:01:30 +08:00
    低端黑的感觉+1
    @hbc
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:54 · PVG 22:54 · LAX 06:54 · JFK 09:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.