合并时使用git从以前的提交中获取文件。效率

合并时使用git从以前的提交中获取文件。效率,git,Git,我合并到main,我不满意。例如,foo.c不是我想要的版本,我想要一个来自分支“bar”上commit“blah”的版本。我现在要做的是在分支“bar”上签出“blah”,在文本编辑器中复制foo.c文件中的所有内容,再次签出main,打开我不喜欢的foo.c版本,然后通过粘贴我复制的内容将其删除 一定有更好的办法 有什么见解吗 git签出栏--foo.c将仅从分支bar签出文件foo.c,而不接触工作树中的其他文件 这是一本书 我应该这样做。但是,如果您想查看foo.c包含的内容,可以使用g

我合并到main,我不满意。例如,foo.c不是我想要的版本,我想要一个来自分支“bar”上commit“blah”的版本。我现在要做的是在分支“bar”上签出“blah”,在文本编辑器中复制foo.c文件中的所有内容,再次签出main,打开我不喜欢的foo.c版本,然后通过粘贴我复制的内容将其删除

一定有更好的办法

有什么见解吗

git签出栏--foo.c
将仅从分支
bar
签出文件
foo.c
,而不接触工作树中的其他文件

这是一本书

我应该这样做。但是,如果您想查看foo.c包含的内容,可以使用
git show

 git show <some sha1 or other reference>:path/to/foo.c
当前提交的副本可以缩短为:

 git show :path/to/foo.c

如果存在一些歧义,您只需要“-”,通常
git checkout分支fileOrPath
就足够了。“如果有歧义”这个词现在对我来说是不明确的。有什么不明确的例子吗?有一个与fileOrFolder同名的分支<代码>git签出--帮助有更多内容details@DavidWest,还请注意,有时您只需要
git checkout--ours$file
git checkout--theres$file
来获取刚才执行的合并的任意一方所持有的文件内容。
 git show HEAD^^:path/to/foo.c
 git show :path/to/foo.c