我在分支v上,然后我切换到主分支,然后切换回分支v。当我再次编译时,编译失败,因为我的代码中出现了一个奇怪的符号:
我正在使用OS X Lion和textWrangler的最新版本,我很确定我没有偶然添加它。这是Git或textWrangler的错吗?
更新
合并后添加了一些git:
答案 0 :(得分:6)
我不认为这是Git的错。你可以通过点击option
和一封信来获得这样的字符:
option+s = ß
option+b = ∫
option+c = ç
option+z = Ω
option+d = ∂
option+q = œ
等等。这可能只是一次意外(我每周都会遇到其中一种组合)。
<强>更新强>:
你在第二个例子中看到的是一个冲突标记,而Git绝对会把它放在那里。这意味着,当你将一个分支合并到你当前的分支(也许是从github拉出)时,Git无法弄清楚到底是什么。因此,不是试图猜测哪个分支具有正确的版本,而是使该部分处于冲突状态,表示您的本地更改以及从合并引入的更改。当两个人在两个不同的分支上修改相同的内容时,通常会发生这种情况。
借用this 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的一些链接: