与简单的git rebase混淆

时间:2020-06-07 17:35:13

标签: git

我正在尝试基于一个基于GitPro的书:https://git-scm.com/book/en/v2/Git-Branching-Rebasing,但是我没有得到相同的输出,我很困惑。

如果我只有一个文本文件,请签出一个新分支,然后进行编辑:

$ git branch
* master

$ git checkout -b test
Switched to a new branch 'test'

$ echo "one change" > my_file.txt 
$ git commit -am "Change one"

 echo "another change" > my_file.txt 
$ git commit -am "Change two"

在此阶段,GitPro表示,如果您在此分支中运行rebase,则输出将为

$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added staged command

但是,当我运行它

$ git rebase master
Current branch test is up to date.

当我回到master并合并时,它会快速前进,但是分支中的所有提交都显示在日志中

commit ac492923dc11ac50c43b55afe639210a4b665130 (HEAD -> master, test)
Author: Chris <chris@localhost>
Date:   Sun Jun 7 18:26:22 2020 +0100

    Change two

commit 6c5887a51abc30530edbe18d4c9b4c31756f6ffc
Author: Chris <chris@localhost>
Date:   Sun Jun 7 18:25:50 2020 +0100

    Change one

GitPro建议这些提交不应该在日志中。那么,怎么回事,我在做什么错?

1 个答案:

答案 0 :(得分:2)

您需要使mastertest分开,以便一个可以基于另一个。

第一个提交Change one可以放在master分支上,而提交Change two可以放在test分支上。这样,您的master分支和test分支将一次提交分开。然后,您可以在test

上执行此操作
git rebase master

您将看到所需的输出。

相关问题