我正试图根据GitPro书中的例子来做。https:/git-scm.combookenv2-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.
而当我回到主站并合并时,确实是快进了,但该分支的所有提交都显示在日志中。
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认为这些提交不应该出现在日志中。那么,这是怎么回事,我做错了什么?
你需要做 master
和 test
分歧,这样就可以在另一个基础上进行重构。
第一个提交 Change one
可放 master
分支和提交 Change two
在...上 test
枝。这样,你的 master
支部和 test
分支会相差一个提交。然后您可以在 test
git rebase master
你就会看到想要的输出。