git 与 --no-commit 合并并从当前分支中选择旧文件

问题描述 投票:0回答:1

我想将

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

如何从工作分支中选取当前文件?

git
1个回答
0
投票

问题是:

如果您不指定 commit-ish 参数,

git checkout <some/file>
将在磁盘上恢复索引中的内容

由于您的

git merge master --no-commit

 将更改放入索引中,
git checkout some/file
 就是一个空操作。


正如@eshift0在他的评论中所指出的:只需添加

HEAD

(或其快捷方式
@
)来表示您想要内容
来自最新提交而不是来自索引:

git checkout @ -- own_components/circuit_simulation/component/knot.h
这也适用于您的冲突文件。

© www.soinside.com 2019 - 2024. All rights reserved.