我有两个分支(A和B),我想合并来自分支A的单个文件与来自分支B的相应单个文件。


当前回答

我将这样做

Git format-patch branch_old..branch_new文件

这将为文件生成一个补丁。

在目标branch_old上应用补丁

去吧等等补丁

其他回答

git checkout <target_branch>
git checkout <source_branch> <file_path>

你可以用:

git merge-file

提示:https://www.kernel.org/pub/software/scm/git/docs/git-merge-file.html

我发现这种方法简单而有用:如何“合并”来自另一个分支的特定文件

事实证明,我们太努力了。我们的好朋友git checkout是完成这项工作的合适工具。 Git checkout source_branch <paths>… 我们可以简单地给git checkout特性分支A的名称和我们想要添加到主分支的特定文件的路径。

为了更好的理解,请阅读全文

我将这样做

Git format-patch branch_old..branch_new文件

这将为文件生成一个补丁。

在目标branch_old上应用补丁

去吧等等补丁

我的编辑被拒绝了,所以我附上了如何从远程分支处理合并更改在这里。

如果你必须在错误的合并后这样做,你可以这样做:

# If you did a git pull and it broke something, do this first
# Find the one before the merge, copy the SHA1
git reflog
git reset --hard <sha1>

# Get remote updates but DONT auto merge it
git fetch github 

# Checkout to your mainline so your branch is correct.
git checkout develop 

# Make a new branch where you'll be applying matches
git checkout -b manual-merge-github-develop

# Apply your patches
git checkout --patch github/develop path/to/file
...

# Merge changes back in
git checkout develop
git merge manual-merge-github-develop # optionally add --no-ff

# You'll probably have to
git push -f # make sure you know what you're doing.