答案 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
基本上它的作用是逐个收集在一个分支中确认的更改,并在另一个分支上重新应用。
使用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.txt
和b.txt
,提交B
和提交C
仅按顺序更改a.txt
;并且提交D
仅更改了b.txt
。
C
已更改a.txt
,b.txt
与提交A
的内容相同。C'
已更改a.txt
(与提交C
相同)但b.txt
更改时提交的内容与提交D
相同(不同于提交C
)。