我尝试使用Git在命令行中合并文件,当出现错误消息告诉我合并已中止.
我认为这是它的结束,但后来我意识到我的文件中有gitmarks.像这样:
start =
expression
validchar =
[0-9a-zA-Z_?!+\-=@#$%^&*/.]
integer =
<<<<<<< HEAD
digits:[0-9]+
{ return digits.join(""); }
=======
sign:"-"* digits:[0-9]+
{ return sign + digits.join(""); }
>>>>>>> gh-pages
Run Code Online (Sandbox Code Playgroud)
这些文件不是由我编辑的,而是显示插入的行:
<<<<<<< HEAD
)=======
)>>>>>>> gh-pages
)更糟糕的是文件内容不再有序.有谁知道我如何让这些文件恢复正常,我在gh-branch中所做的更改合并到主分支?
在Xcode更新到版本8.0(8A218a)之后,仅在某些文件发生冲突时才从Xcode中删除git存储库中的更改.我们都在同一个分支机构工作.
只要没有冲突,一切都很完美,我能够提交,拉动和推动.
但我发现每当我们在某些文件中发生冲突时,Xcode就不会再出现冲突了.它只是关闭拉动弹出窗口而不显示冲突解决程序窗口.没有信息或任何东西.我没看到
拉成功
信息.我无法推送我的提交(因为没有拉动更改)获取消息:
确保已从远程存储库中提取所有更改,然后重试
我试过使用终端拉,但是冲突的文件搞砸了git消息,显示我和其他人在这些git消息的同一个冲突文件中的变化.其他人正在处理的文件现在显示为我自己的更改/添加.
我也尝试将git更新到最新版本,目前是2.10.0.也没有运气.
所以我最终删除了我的副本并克隆了最新版本并重新应用了我所做的非常烦人的更改.
有人有解决方案吗?
编辑:以下是使用终端的解决方法:
打开终端并告诉系统Xcode实用程序所在的位置:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Run Code Online (Sandbox Code Playgroud)将"opendiff"设置为全局默认的mergetool:
git config --global merge.tool opendiff
Run Code Online (Sandbox Code Playgroud)手动打开Xcode mergetool并以通常的方式摆脱冲突:
git mergetool
Run Code Online (Sandbox Code Playgroud)保存更改,提交,推送.
下面参考代码段1、2、3解释Git合并标记的含义。
/* Code from beginning of file */
<<<<<<< HEAD
/* code segment 1 */
||||||| merged common ancestors
/* code segment 2 */
=======
/* code segment 3 */
>>>>>>> master
/* code to end of file */
Run Code Online (Sandbox Code Playgroud)
这个问题旨在引出一个简单的解释,而不参考其他问题中发现的复杂因素。
我在分支v上,然后我切换到主分支,然后切换回分支v.当我再次编译时,编译失败,因为我的代码中出现了一个奇怪的符号:
我正在使用OS X Lion和textWrangler的最新版本,我很确定我没有偶然添加它.这是Git或textWrangler的错吗?
UPDATE
合并后添加了一些git: