在本周初,我分支了我的开发部门,因此我可以参加贸易展示会。在此过程中,我们发现了一些问题,并且我处理了一些需要进入开发分支(最终是主要版本)的事情。
我需要做的是查看新分支并选择我要合并到开发中的更改。请注意,有些提交包含需要合并的更改,有些应该被忽略。
我是Git的新手,所以有人可以解释围绕我需要做的事情的概念/术语。
答案 0 :(得分:2)
签出git cherry-pick
,它允许您将提交从一个分支合并到另一个分支。
如果你只想使用提交的一部分,你可以通过在挑选它之后修复提交来实现。
我通常使用git gui
的修改上次提交功能来修复提交消息和已提交的块。
$ git cherry-pick workbranch~5
$ git gui
// fix what needs fixing
$ git cherry-pick workbranch~4
// we leave out workbranch~3 entirely
$ git cherry-pick workbranch~2
// ...
使用cherry-picking
您还可以更改提交的顺序...
在任何情况下,你都应该做一些小型的原子提交(经常提交!);这样,您最大限度地减少了之后修改提交的需要。
答案 1 :(得分:1)
如果要在新分支中应用整个提交,可以使用cherry-pick
git cherry-pick <commit-sha>
您可以使用git checkout --patch <commit-sha>
从提交中挑选个人。这将为您提供一个交互式shell,您可以在其中为每个块执行多个任务..
Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]? ?
y - apply this hunk to index and worktree
n - do not apply this hunk to index and worktree
q - quit; do not apply this hunk nor any of the remaining ones
a - apply this hunk and all later hunks in the file
d - do not apply 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
您也可以从个别文件中有选择地挑选帅哥。
git checkout --patch <commit-sha> -- <file-name>