2013-02-03 338 views
0

Git新主分支

我有幾個舊分支已合併到主分支。我想重新開始,即我想刪除除主分支以外的所有分支。

主分公司將成爲未來發展最新變化的新基地分公司。 我該如何做到這一點。

更改後,如果有人簽出項目,他們將獲得具有所有功能的工作主分支。

任何幫助命令的例子將不勝感激。謝謝!

回答

3

您可以刪除本地分行與git branch -dgit branch -D(如果你想刪除的分支還沒有完全合併)。

要刪除遠程上的分支,您可以使用git push REMOTE --delete BRANCH(或者如果您的git版本較舊,則使用git push REMOTE :BRANCH語法)。請確保用實際的遙控器名稱代替 - 默認遙控器名爲origin,但您可能有多個遙控器等。

1

'git branch -d'將刪除該分支。如果該分支沒有合併,而您想強制刪除它,則使用'-D'而不是'-d'。

0

可能比你需要多一點,如果你想保持原來的master,但如果你真的開始新鮮,你可以使用

git checkout --orphan new_master 
git rm -r --cached . 
git clean . 
git commit --allow-empty -m 'initial commit' 
git tag -a init -m 'repository start' 

git clean .可能需要運行兩次;清理.gitignore文件可以發現已被忽略的文件。

這是做什麼是創建一個新的基本分支與空承諾從頭開始並標記第一次提交以便於參考。

然後使用git rebase -I --onto init --root <whatever you want to move over>開始將要保存的提交帶到這個新分支。

當您從舊分支中獲得所需的一切時,git branch -D <branch_name>將刪除分支引用。如果你需要刪除標籤git tag -d <tag_name>

重新創建任何新的分支名稱和標籤後,他們已經被刪除原來的。

一旦本地存儲庫以您想要的方式顯示,請將其按git push origin <local branch>:<remote_branch> --force推送到原點。舊的遠程分支可以通過git push origin :<remote_branch> --force刪除。

此時組成舊分支機構的提交將不被引用,並且不應顯示在git log --all --oneline --graph中,並且您的新「歷史記錄」應該看起來像您希望的那樣。