1

我在一个分支v上,然后我切换到master分支,然后又切换回分支v。再次编译时,编译失败,因为我的代码中出现了一个奇怪的符号:

在此处输入图像描述

我正在使用 OS X Lion 和最新版本的 textWrangler,我很确定我不是偶然添加的。这是 Git 或 textWrangler 的错吗?

更新

合并后 git 添加了一些东西:

在此处输入图像描述

4

1 回答 1

6

我不认为这是 Git 的错。你可以通过点击option和一个字母来获得这样的字符:

option+s = ß
option+b = ∫
option+c = ç
option+z = Ω
option+d = ∂
option+q = œ

等等。这可能只是一个意外(我每周都会击中其中一个组合)。

更新

您在第二个示例中看到的是一个冲突标记,Git 绝对把它放在那里。这意味着,当您将一个分支合并到您当前的分支中时(可能是从 github 拉取的),Git 无法弄清楚该去哪里。因此,与其尝试猜测哪个分支具有正确的版本,不如让该部分处于冲突状态,指示您的本地更改以及从合并中引入的更改。当两个人在两个不同的分支上修改相同的内容时,通常会发生这种情况。

借用这个 SO answer,假设您有file.txt,并且在合并后您有一个部分,例如:

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

<<<<<<< HEAD和之间包含的所有内容=======都是您输入的内容(此部分通常标记为local

=======和之间的所有>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt内容都是传入提交中相同位置的内容(通常标记为remote)。

当您在合并后看到此内容时,您必须通过删除标记( 和 )手动修复文件<<<<<<< HEAD:file.txt=======决定>>>>>>> 77976da要保留哪个版本;在这种情况下Hello World, GoodBye,或者您可能想同时保留两者。关键是,在两个不同的分支中编辑了相同的内容,Git 无法弄清楚如何处理这些行。

Git 是一个了不起的版本控制系统,但与所有工具一样,它所能完成的工作也有其局限性。

关于一些奇怪的小事的快速说明;当我在 Xcode 中工作时,我可以去终端,运行所有我想要的 git 命令,然后马上回到 XCode 中工作。使用Sublime Text 2,我已经退出 Sublime Text,运行 git 命令,然后重新打开 Sublime Text,否则更改不会像我预期的那样持续存在。我不确定Text Wrangler,你会弄清楚那部分(或者也许有人可以发表评论)。

一些关于 Git 的链接:

于 2013-03-06T01:45:33.253 回答