2017-02-11 112 views
2

我工作在GitHub上的項目。在我的電腦上,我做了六次提交,但還沒有推送到GitHub服務器。現在我認識到,我想保持目前的master分支,是在雲中,並把提交的名爲development一個單獨的分支。我怎樣才能做到這一點?我是Git和GitHub的新手。如何使用git創建分支並重置另一個分支?

編輯:我也有一些提交,已被推入GitHub之前unpushed提交。我想保持這些在兩個分支,WHIE只保留unpushed提交的development

+0

最後,你要繼續在「發展」或「主人」。 - 這個問題的答案略微改變了「最佳命令行戰略」。 –

回答

2

創建一個新的分支,你叫development

git branch development 

然後移動主到它是在遙控器上:

git checkout master 
git reset --hard origin/master 

現在development指向上次提交而master是哪裏它在提交之前。

您可以推動新的分支,成立了遠程跟蹤與

git push -u origin development 
+0

我也曾多次提到我被推送到GitHub。 'git reset --hard origin/master'不會重置我所有的提交?我只希望在'master'分支中重置六次unpushed提交,但保存並推入'development'分支。 –

+0

號該重置將使主點指向您最後推送到遠程調用起始位置的任何位置 –

+0

重置通常只會移動當前分支的頂端。它並沒有真正消除變化或類似的東西。 –

0

假設你已經取得了提交您local主分支(所以推,沒有額外的參數拉的工作);建立在當地一個新的分支和調用,發展

git branch development 
git checkout development 

你的提交會在那裏在這個新的分支,你可以推到git的世界又名遠程雲

git push origin development 

請確保您有

git push origin master 

如果是遠程/雲大師會對您的提交;我相信你不需要

+0

OP如何將主設備重置爲它在服務器上的內容? –

1

你想要做的第一件事是在你在哪裏,並在其上「是」點創建一個分支。 git checkout是唯一可以更改當前分支的命令。而其-b選項創建在頂部的分支(在你此刻的點,如果你不告訴它,否則):

git checkout -b development 

然後,你要設置的本地分支master回哪裏的遙控器是。這個你將其設置爲所謂的「本地遠程跟蹤分支」,這是遠程分支的快照(從最後的時間內獲取/推):

git branch --force master origin/master 

你必須使用--force在這裏,否則git branch不會改變現有分支。

+0

爲什麼你需要檢查新的分支,特別是如果你的下一步是與另一個分支一起工作? –

+0

@MadPhysicist是否有意不繼續在'development'分支?您的評論可能暗示'git branch'命令不會改變當前的結賬。 –

+0

適合你的優點+1先生 –

相關問題