在一个分支A中的一个分支中,更改文件并提交更改.现在在另一个分支B中编辑和重命名相同的文件.
将B合并到A git时,可以正确识别冲突(CONFLICT(删除/修改)),并且这两个文件都在工作目录中.
如果我知道想要在一个文件中同时进行更改,我该如何做到最好?
有一个git merge-file是 - 如果我是对的 - 期望这两个文件和一个共同的祖先.但是如何给后者呢?我怎么能说"使用$ commit from $ commit"或类似的东西?
例:
mkdir git-rename-repo
cd git-rename-repo
git init
echo "First line" > afile
git add .
git commit -m "First commit in master"
git checkout -b mybranch
echo "Second line in mybranch" >> afile
git mv afile bfile
git commit -a -m "change and rename in mybranch"
git checkout master
echo "Changed first line in master" > afile
git commit -a -m "changed afile"
git merge mybranch
Run Code Online (Sandbox Code Playgroud)
我现在想要一个名为'bfile'的文件,其中包含两个更改:
Changed first line in master
Second line in mybranch
谢谢
wor*_*mer 15
就我而言,它是存储库中没有的已删除文件
CONFLICT (delete/modify): ERD.pdf deleted in HEAD and ...
Run Code Online (Sandbox Code Playgroud)
我只需要这样做:git rm ERD.pdf
希望有所帮助.
我也有这个场景
**CONFLICT(修改/删除):***文件名在HEAD中删除,并在6efb2a94ba0601aa1ec5050ab222a0359ee8379a中修改.FileName版本6efb2a94ba0601aa1ec5050ab222a0359ee8379a留在树中.*
我也同样困惑并且达到了这个职位.但在打字时git status,所有的疑惑都消失了.git status,对冲突文件说明如下:
未合并的路径:(
使用"git add/rm ..."标记分辨率)
所以我刚刚做了git rm FileName,之后CONFLICT得到了解决.
更新 好吧,git 的递归合并算法本身就可以很好地完成这个任务。我只是使用太小的文件来测试它,因此相对相似性低于重命名检测的触发条件。
如果我用两小行更改文件的一行,则相对变化非常大。
当然我可以做类似的事情
git show HEAD^:afile > afile_ancestor
kdiff3 -m afile_ancestor afile bfile
Run Code Online (Sandbox Code Playgroud)
PS:对于上面的格式损坏表示抱歉。我没有打开 JavaScript,所以看不到预览。
| 归档时间: |
|
| 查看次数: |
31271 次 |
| 最近记录: |