git fast-forward總結


fast-forward和no-fast-forward兩種模式只會在merge的時候出現。

fast-forward出現的兩種情況

1. git push 和 git pull 遠程分支與本地分支合並

2. git merge branch 本地兩個分支進行合並

fast-forward

merge之后不會出現新的commit對象,分支的合並線是一條直線,被合並的分支,沒有分叉,會丟失,再看不到該分支歷史。

no-fast-forward

merge之后會出現一個merge commit對象,分支的合並線在主干外出現一條分叉,叉出去,又叉回來,在merge節點處合並為主干。

git push出現reject的情況

本地的最后commit與遠端的不一致,導致無法對接,reject。

對於已經push的commit,如果在本地再次修改,例如 git commit --amend或者git rebase -i修改,則push的時候會出現reject。

遠程的commit在本地已經沒有了,沖突了,如果沒人拉取此commit,則可以git push -f,強制刪除無用的commit,但沒人拉取不可知。

所以,已經push的commit,只能用revert來修改commit,即新提交一條commit。

 

參考:

https://www.jianshu.com/p/86c44bef4ea1

https://blog.csdn.net/lzb348110175/article/details/93479318


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM