Jul*_*uly 5 git git-merge merge-conflict-resolution
到目前为止,我还没有用 git 做这么多。现在,我有以下问题。虽然我做了一些本地修改和提交,但我的同事在新分支中重组了文件和文件夹。然后,我添加了一个远程跟踪分支(反映他的更改)并尝试将我的修改合并到其中。当然,当文件移动到另一个位置时它会失败。我怎样才能继续?'git status' 告诉我这个:
# On branch develop
# You have unmerged paths.
# (fix conflicts and run "git commit")
#
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# deleted by us: src/de/mpicbg/tds/knime/hcstools/prefs/DoubleFieldEditor.java
# deleted by us: src/de/mpicbg/tds/knime/hcstools/prefs/HCSToolsPreferencePage.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/HeatMapModel.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/PlateViewer.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/color/LinearGradientTools.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/dialog/PlateAttributeDialog.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/menu/TrellisMenu.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/menu/ViewMenu.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/menu/WellAttributeComboBox.java
# deleted by us: src/de/mpicbg/tds/knime/heatmap/renderer/HeatTrellis.java
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bin/
# src/de/mpicbg/tds/knime/heatmap/HeatMapModel.ucls
# src/de/mpicbg/tds/knime/heatmap/diagram.ucls
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
我不知道现在该怎么办...
因此,如果您想保留更改,但要保留在新文件位置,请使用 mergetool(因此必须在删除文件和更改更改之间进行选择,或者保留文件,但它们不会在好的目录)在任何情况下都不会令人满意。
在这种情况下,当处于冲突状态时,我会将冲突文件(位于旧目录中)移动到新目录,git add 新文件,git rm 旧文件(冲突)并提交。
下面和过程跟踪(3个文件“file1”,“file2”和“file3”已在“files”文件夹中移动并在另一个分支中并行更新,执行移动的分支首先合并,然后分支更新文件内容后合并并发生冲突):
ghislain@debian: /tmp/git-test (master)
> git merge --no-ff 添加文件内容
CONFLICT(修改/删除):file3 在 HEAD 中删除并在 add-file-content 中修改。file3 的版本 add-file-content 留在树中。
CONFLICT(修改/删除):file2 在 HEAD 中删除并在 add-file-content 中修改。file2 的版本 add-file-content 留在树中。
CONFLICT(修改/删除):file1 在 HEAD 中删除并在 add-file-content 中修改。文件 1 的版本 add-file-content 留在树中。
自动合并失败;修复冲突,然后提交结果。
ghislain@debian: /tmp/git-test (master *+|MERGING)
> git 状态
在分支主
您有未合并的路径。
(修复冲突并运行“git commit”)
未合并的路径:
(根据需要使用“git add/rm ...”来标记分辨率)
被我们删除:file1
被我们删除:file2
被我们删除:file3
未向提交添加任何更改(使用“git add”和/或“git commit -a”)
ghislain@debian: /tmp/git-test (master *+|MERGING)
> mv 文件 1 文件 2 文件 3 文件
ghislain@debian: /tmp/git-test (master *+|MERGING)
> git 状态
在分支主
您有未合并的路径。
(修复冲突并运行“git commit”)
未合并的路径:
(根据需要使用“git add/rm ...”来标记分辨率)
被我们删除:file1
被我们删除:file2
被我们删除:file3
未为提交而暂存的更改:
(使用“git add ...”来更新将提交的内容)
(使用“git checkout -- ...”放弃工作目录中的更改)
修改:文件/文件1
修改:文件/文件2
修改:文件/文件3
未向提交添加任何更改(使用“git add”和/或“git commit -a”)
ghislain@debian: /tmp/git-test (master *+|MERGING)
> git 添加文件
ghislain@debian: /tmp/git-test (master *+|MERGING)
> git 状态
在分支主
您有未合并的路径。
(修复冲突并运行“git commit”)
要提交的更改:
修改:文件/文件1
修改:文件/文件2
修改:文件/文件3
未合并的路径:
(根据需要使用“git add/rm ...”来标记分辨率)
被我们删除:file1
被我们删除:file2
被我们删除:file3
ghislain@debian: /tmp/git-test (master *+|MERGING)
> git rm 文件 1 文件 2 文件 3
文件 1:需要合并
文件 2:需要合并
文件 3:需要合并
rm'文件1'
rm'文件2'
rm'文件3'
ghislain@debian: /tmp/git-test (master +|MERGING)
> git 状态
在分支主
所有冲突都已解决,但您仍在合并。
(使用“git commit”结束合并)
要提交的更改:
修改:文件/文件1
修改:文件/文件2
修改:文件/文件3
ghislain@debian: /tmp/git-test (master +|MERGING)
> 提交
[master 4e478c6] 合并分支“添加文件内容”
ghislain@debian: /tmp/git-test (master)
>