1

假设我在 Git 中有两个分支:developmentqa-test. 这两个分支都包含不同的功能 - 提交,但也是A这两个分支的最新共同祖先:

A--->B--->C--->developent
\
 \
  D--->E--->qa-test

现在在某些时候我们发现存在一个错误,我们需要在和 中A修复它们,即我们需要修复。我可以采用的一种方法是从names创建一个新分支,修复错误,提交到然后将其挑选到. 有没有更好的方法来做到这一点?qa-testdevelopmentqa-testhotfixqa-testdevelopment

4

3 回答 3

2

从 A 创建一个分支,然后将 withqa-test和的更改合并development

$ git merge-base qa-test development 
sha-1 A
$ git checkout -b hotfix <<sha-1 A>>
... do changes and commits
$ git checkout devel
$ git merge hotfix
$ git checkout qa-test
$ git merge hotfix
$ git branch -d hotfix 
于 2013-09-19T13:42:15.297 回答
1

扩展@Konstantin 的回答:

$ git checkout A
... fix bugs ...
$ git checkout -b fix # creates a temporary branch for the fix
$ git commit

现在的状态:

  fix
 /
A -> B -> C -> development
 \
  D -> E -> qa-test

现在进行变基:

$ git checkout development
$ git rebase fix # uproot development and stick it on the fix branch
... fix any merge conflicts ...
$ git checkout qa-test
$ git rebase fix # same for qa-test
... fix any merge conflicts ...

现在的状态:

A -> fix -> B -> C -> development
       \
        D -> E -> qa-test

如果我在这里做错了什么,请告诉我,以便我解决这个问题!

于 2018-01-19T22:28:34.260 回答
0

rebase ” 会为你做这件事,修复开发分支中的错误,然后 rebase qa-test with development

于 2013-09-19T13:34:17.427 回答