在改造之后旧的提示是否与新提示相同?

时间:2018-06-15 12:47:12

标签: git version-control

enter image description here

我知道B'肯定可以与B不同,但C和C'与不同的提交ID完全相同或者它们可能不同?

2 个答案:

答案 0 :(得分:0)

注意

对于示例,我们将使用以下树

* a122f6d (HEAD -> remoterepo) Commit END
* 9667bfb Commit MASTER
| * b9bcaf0 (origin/experimentalbranch, experimentalbranch) Commit 3
| * 110b2fb Commit 2
| * e597c60 Commit 1
|/
* 0e834f4 (origin/remoterepo) First commit

git rebase

git rebase基本上它的作用是逐个收集在一个分支中确认的更改,并在另一个分支上重新应用

使用rebase可以帮助我们在应用于本地提交但尚未上传到任何远程存储库时避免冲突。 如果您对后者不小心并且合作伙伴使用受影响的更改,那么您肯定会遇到问题,因为这些类型的冲突通常很难修复

例如:

git checkout remoterepo
git rebase experimentalbranch


* f8a74be (HEAD -> remoterepo) Commit END
* 4293e9d Commit MASTER
* b9bcaf0 (origin/experimentalbranch, experimentalbranch) Commit 3
* 110b2fb Commit 2
* e597c60 Commit 1
* 0e834f4 (origin/remoterepo) First commit

答案 1 :(得分:0)

不,提交C和提交C'不仅可以与提交ID不同,还可以与文件内容不同。

例如,每个版本中有两个文件a.txtb.txt,提交B和提交C仅按顺序更改a.txt;并且提交D仅更改了b.txt

  • 在变基之前:提交C已更改a.txtb.txt与提交A的内容相同。
  • 重新定位后:提交C'已更改a.txt(与提交C相同)但b.txt更改时提交的内容与提交D相同(不同于提交C)。