我正在尝试将对特定文件(更改2所示的GitBasics.docx)所做的某些更改合并到另一个分支。
下面是分支develop
的最近三个提交(包含我对其进行更改的文件):
commit c5fab21e2837808fbc1a4d351b9d605ae856477e
Author: <>
Date: Tue Jul 10 17:25:40 2018 +0530
change 3
commit 872926a8a356183e46d281a14578f3895438ae72
Author: <>
Date: Mon Jul 9 12:58:33 2018 +0530
change 2 (made to Git Basics.docx)
commit 25ce9bcf0b2c44e29e148d11ea89df508758d014
Author: <>
Date: Thu Jul 5 20:22:21 2018 +0530
change 1
以下是分支test
(最近对它进行了其他更改)中的两次最近提交:
commit c9f0ef332e1f5e9f398179372222d2ac5580ee96
Author: <>
Date: Fri Jul 6 19:41:55 2018 +0530
change 4
commit 25ce9bcf0b2c44e29e148d11ea89df508758d014
Author: <>
Date: Thu Jul 5 20:22:21 2018 +0530
change 1
您可能会看到,更改1是我创建分支test
的地方。我想将变更2从develop
合并到test
。我将无法使用git merge
,因为develop
还具有与test
不同的其他提交(更改4),并且我不希望它们合并。
通过进行一些研究,我发现了git checkout source_branch <paths>
命令,该命令目前可以满足我的目的,但我也了解到,此方法只是在新分支中替换文件,而不是合并文件。因此,如果在两个分支上都进行了更改(对同一个文件),那么我将在文件被复制到的分支上丢失这些更改。
我相信的另一个选择是git cherry-pick
,但是坦率地说,我无法从在线提供的信息中了解如何使用此命令。如何使用此命令,或者还有其他方法可以实现我要完成的任务?
我指的是http://schacon.github.io/git/git-cherry-pick.html中有关git cherry-pick
的信息,我认为所提供的解决方案不是那么简单。我正在共享该链接,以防它对其他人有帮助。
答案 0 :(得分:2)
由于问题已更改,因此更改了答案。使用:
git checkout test
git cherry-pick 872926a8a
这将在分支测试中创建872926a8a提交(更改2)的副本。