1

前段时间,我从主仓库创建了一个分支 myBranch。从那时起,已将一些更改推送到 master,现在我需要确保其中一些更改(但不是全部)进入 myBranch。换句话说,只需要将一些修改过的文件从master复制到myBranch(我知道“复制”可能不是正确的git术语,但我不知道正确的是什么)。

因此,如果我在master中修改了file1.c和file2.c,并且我只想将file2.c复制到myBranch,那么正确的方法是什么?谢谢

4

1 回答 1

2

如果你想提交提交,你可以使用git cherrypick <commit-sha>.

这将创建一个新的提交,其中包含与选择的提交相同的更改。

否则,如果您的提交太宽泛并且更改了您不想带来的文件,那么您可以像这样签出 master 的部分git checkout master -- /file/to/update。该文件将完全按照 master 上的版本签出(因此,如果您对同一文件的分支进行了更改并且想要保留它们,那么这不是最好的主意)。

如果这些都不适合您...那么我建议您手动复制更改(或使用交互式 rebase 进行大量操作)并在将来进行更好的(更多提交和更小的更改范围)提交。

无论如何,请注意,在所有情况下,当您尝试将分支合并回 master 时,像这样使用历史可能会带来很多冲突。

于 2013-09-20T17:24:37.150 回答