简单的git重写的困惑

问题描述 投票:-1回答:1

我正试图根据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认为这些提交不应该出现在日志中。那么,这是怎么回事,我做错了什么?

git
1个回答
2
投票

你需要做 mastertest 分歧,这样就可以在另一个基础上进行重构。

第一个提交 Change one 可放 master 分支和提交 Change two 在...上 test 枝。这样,你的 master 支部和 test 分支会相差一个提交。然后您可以在 test

git rebase master

你就会看到想要的输出。

© www.soinside.com 2019 - 2024. All rights reserved.