2012-06-01 56 views
6

在Git中,我有時在長時間運行的分支上工作。當我準備好時,我喜歡隨時在主人身上進行重組,以便更輕鬆地進行合併。我可以在一個命令中銷燬並重新創建Git遠程分支嗎?

重新綁定後,我無法將以前推送的分支推送到遠程,因爲我的分支的歷史不再與該分支的遠程歷史記錄一致。所以我必須先刪除它。

這是我目前的工作流程:

git checkout my_branch 
git rebase master 
git push origin :my_branch # Delete remote version of the branch 
git push origin my_branch # Push up my new version of history on this branch 

有一個單獨的原子命令,它可以代替過去的兩個命令?

+0

我不知道你不能推出重新設計的分支。任何人都知道爲什麼? Rebase似乎是一個相當常見的操作,爲什麼它不能「正常工作」? – Shahbaz

+2

引用http://help.github.com/rebase _「這是一個不好的做法,重新綁定已提交給遠程回購的提交,這樣做可能會引起git gods的憤怒......您已被警告。「_ – Stefan

+0

@Stefan,哦,好的,舊的git-merge它對我來說是。 – Shahbaz

回答

10

如果允許您重寫遠程分支,則可以使用git push --force my_remote my_branch

+2

這將解決問題,但Stefan走上了正軌。重新提交已提交給遠程的提交通常不是一個好習慣。 – Emily

+0

好吧,如果你是唯一一個在該分支上工作的人,那可能就沒關係。 – Stefan

+0

@Stefan - 那正是我的情況;這是我的獨家分支。否則我不會這樣做。 –

相關問題