[英]Rebasing local Git branch before push to remote
遙控器: 原產地
$ git branch
* master
$ git checkout -b "new_feature"
現在我在“new_feature”分支上進行了幾次提交,並希望在更新后將其推送到原點 。
$ git branch
master
* new _feature
$ git pull --rebase origin new_feature
$ git push origin new_feature
這是在推送到遠程之前更新本地分支的正確方法嗎?
你想用
git pull --rebase origin master
在將參數git pull
必須是可選的遠程, 以及遙控器上的一個可選的Refspec或參考/分支:
git pull [options] [<repository> [<refspec>…]]
new_feature
不會起作用,因為它是一個地方分支,另外,它沒有任何意義的rebase
,因為你想傳遞一個修訂rebase
分支new_feature
之上 。 如果你有new_feature
查出來,那么它的理解/隱含的意思就是你要的分支rebase
,這是怎么rebase
工作正常。
創建“new_feature”分支后,您將擁有類似的狀態
o <master> <origin/master> <new_feature> most recent commit
|
...
然后,在將更改提交到本地分支后,您的存儲庫將如下所示
o <new_feature> your last commit
|
o your first commit
|
o <master> <origin/master> most recent commit
|
...
做一個
git pull --rebase origin master
正如Cupcake建議的那樣,你將以此結束
o <new_feature> your last commit
|
o your first commit
|
o <origin/master> something meanwhile commited on remote master
|
o <master> most recent commit
|
...
您的更改在“origin / master”之上重新定位。 這些不是您的原始提交,但提交已更改為適合“新”“origin / master”。
執行rebase可以獲得合並沖突,因為在遠程主服務器上進行的更改可能會與您的更改沖突。
但是因為“new_feature”現在“在”origin / master“之上”,你可以推送到遠程主機。
這也將標簽“origin / master”移動到“new_feature”的級別。 如果您還想讓您的本地“主人”在軌道上,那么您必須檢查它並與“origin / master”合並。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.