我想将
master
合并到 branch1
并在 branch1
上完成:
git merge master --no-commit
之后我得到了预期的结果:
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Changes to be committed:
new file: own_components/circuit_simulation/component/README.algorithm
modified: own_components/circuit_simulation/component/knot.h
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: own_components/circuit_simulation/component/reordered_actions.h
both modified: project_m/s60sps/local_reordered_actions.h
好的,我现在想要当前分支的旧版本的 3 个文件
branch1
。
我做到了:
[krud@specht first]$ git checkout own_components/circuit_simulation/component/knot.h
Updated 0 paths from the index
还有
[krud@specht first]$ git checkout --ours own_components/circuit_simulation/component/knot.h
Updated 0 paths from the index
意思是:什么也没发生。
此外,我还想从该分支取回旧版本,以获取有冲突的文件之一:
[krud@specht first]$ git checkout --ours project_m/s60sps/local_reordered_actions.h
Updated 0 paths from the index
如何从工作分支中选取当前文件?
问题是:
如果您不指定 commit-ish 参数,
git checkout <some/file>
将在磁盘上恢复索引中的内容。
由于您的 git merge master --no-commit
将更改放入索引中,
git checkout some/file
就是一个空操作。
HEAD
(或其快捷方式
@
)来表示您想要内容来自最新提交而不是来自索引:
git checkout @ -- own_components/circuit_simulation/component/knot.h
这也适用于您的冲突文件。