2013-01-22 36 views
0

我在本地克隆了一個git repo。我已經提出了一些提交給master分支和而不是推送到遠程。與此同時,其他人也加入了遙控大師的行列。現在我想保留我的提交遠程回購,但在我最初克隆的提交開始的分支。主要原因是保持我的承諾的歷史,但不與主人合併。預先感謝任何有用的想法。git植入分支

回答

5

假設你的遙控器是origin和當地分行是master,你想推到new_branch

git push origin master:new_branch 
+0

哇,超級!這是否通過名稱new_branch創建了新的分支,並且在我最初做了我的克隆的時候呢?如果是這樣,當我從遠程接下來的時候,它會把我的新分支在整個回購倉庫放在正確的地方? – user1487178

+1

如果'new_branch'尚不存在,它將被創建。你的'master'的當前狀態將被推送到'new_branch',所以提交樹將保持原樣。如果你想在不合並你的提交的情況下拉取當前'origin/master',你可以運行'git fetch origin','git reset --hard origin/master'(在'master'上),然後'git pull' 。確保你在這之前成功地推送了'new_branch',因爲這樣會刪除你的所有提交,只把它們留在'new_branch'中。如果您想合併或重新提交您的提交,請跳過重置。 – cjc343

1

cjc343的答案,而技術上是正確的,不完整的感覺對我來說。我會建議爲你的工作做一個本地分支,然後推動它。這種方式,主人可以追蹤出身/主人,相信我,當你這樣做的時候,生活會更容易。

假設你在HEAD,和你的主人仍然超出了你最初的克隆點多次提交...

git checkout -b new_branch 
git push origin new_branch 
git checkout master 
git reset --hard origin/master 

這1)使得新的本地分支,2)它推到遠程存儲庫,3)切換到主人,4)重設主人到起點/主人,這樣你就可以再次輕鬆地拉他人的工作。