我需要做什麼: 我有十個提交的主要內容。我需要將這些提交移動到一個新的分支。我一直在不停地拉,但我還沒有推動我的工作。我怎樣才能使我的十個提交到一個新的分支,然後我可以推?如何將我的10次提交從master轉移到git中的新分支?
我試過按照步驟in this question here,但它們不起作用。具體來說,當我進行rebase時,所有我最終都會提交master,而在我的新分支上沒有提交。沒有任何提交被移動到新的分支,我不明白這是怎麼可能的,因爲問題中提供的步驟。
我需要做什麼: 我有十個提交的主要內容。我需要將這些提交移動到一個新的分支。我一直在不停地拉,但我還沒有推動我的工作。我怎樣才能使我的十個提交到一個新的分支,然後我可以推?如何將我的10次提交從master轉移到git中的新分支?
我試過按照步驟in this question here,但它們不起作用。具體來說,當我進行rebase時,所有我最終都會提交master,而在我的新分支上沒有提交。沒有任何提交被移動到新的分支,我不明白這是怎麼可能的,因爲問題中提供的步驟。
從我的理解,這是你擁有的一切:
* commit 10 (master)
|
* commit 9
|
...
| * (origin/master)
* commit 1 |
|.------------^
*
我想你問什麼要的是有一個新的分支提交1-10。
爲了做到這一點,你簡單地用分支名稱標記分支,然後將主設備重置爲原點/主設備。
所以:
git checkout master # your current latest set of changes (commit 10)
git branch feature # the name of your branch
git reset --hard origin/master # sets master to point to origin/master
git pull --rebase # updates master with origin/master
git checkout feature && git merge master # updates feature branch with what is on origin/master
這將結束:
* commit 11 (feature) merge commit
|^------------.
* commit 10 |
| ...
...
| * (master, origin/master)
* commit 1 |
|.------------^
*
這是你想要做什麼?
一種選擇是隻推你的工作提高到一個新的分支:
git push HEAD:branchname
這將在服務器,其中包含你目前的工作中創建一個新的分支branchname
。 - 在這種情況下,您可能會感到困惑,因爲您的工作仍在當地掌握。
得到這個權利,你可以只是你的本地主復位到遠程版本:
git reset --hard @{u}
要知道,這將扔掉所有未提交的機會。
然後在branchname上工作,你可以做git checkout branchname
。
只需重命名你的分支,並將它推:
git branch -m branchname
git push -u branchname
這裏-u
重要的是要更新跟蹤分支。
這使我得到了最終的解決方案,這是爲了:1)結帳大師2)git日誌獲取最近的提交ID 3)重新設置4)重置硬頭5)結帳最近的提交(去一個分離頭狀態)6)創建一個新的分支,並提交自動放入該新的分支 – mmr