如何从Git分支合并特定文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我有两个git分支,分别分支1和分支2,我希望将分支2中的file.py合并到分支1中的file.py,并且只合并该文件。

本质上,我只想在分支1中处理file.py,但希望利用Merge命令。做这件事的最好方法是什么?

提问于
用户回答回答于

已接受的答案已经提到使用git checkout。现在,我们可以满足于file.pybranch2不再适用于branch1。这种情况将需要选择一些变化,而另一些则需要改变。因此,若要让完全控件使用--patch开关:

$ git checkout --patch branch2 file.py

的手册页中的交互式模式部分git-add(1)解释要使用的密钥:

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

拆分命令特别有用。

用户回答回答于

正如注释中指出的,这在技术上不是一个“合并”,这就是为什么下面的链接使用引号。然而,我很少需要像其他海报所描述的那样复杂的东西,所以我认为它对于OP的问题是有用的,如果不是一个恰当的解决方案的话。

查看此页面:Git提示:如何“合并”来自另一个分支的特定文件它提供了最简单的方法来做到这一点,IMHO。

基本上,将其应用于你的情况:

$ git checkout branch1 # i.e. make sure you're in branch1
$ git checkout branch2 file.py

扫码关注云+社区