2013-02-19 55 views
0

首先,我對Git很陌生。Git創建一個沒有默認合併的分支

我在我的回購中有一個名爲master的默認分支,我創建了一個名爲bugs的新分支,併爲其添加了一個known_bugs.txt文件。問題是,Git不僅將添加到bugs分支,而且它還顯示bugs分支內的master分支的所有其他文件。有沒有一種方法可以簡單地在創建新分支時不將文件從默認分支合併到新分支中?

在此先感謝:d

+2

做樹有 「枝」 只是浮在半空中那,還是他們從樹的樹幹開始?這不是一個關於合併的問題。 – hobbs 2013-02-19 00:33:44

回答

1

發生了什麼事情是,當你在你的當前上下文創建的git中創建一個分支。如果您在創建分支時沒有任何承諾要掌握,則新創建的分支也將爲空。如果您有2個文件在分支時承諾掌握它,它將採用該提交(2個文件)並將它們移動到您新創建的分支中。

所以,如果你想創建一個空的分支,你有幾種選擇...

  • 簡單:創建commiting任何事情之前所有的空分支。
  • 中等:只要你創建+檢出你的分支刪除(git rm)一切然後添加你的文件。第一次提交到新分支將刪除並添加所有文件。
  • 專家:使用孤立標誌創建沒有父提交的分支,然後刪除所有文件,如前所述。

git checkout --orphan NEWBRANCH

(其中NEWBRANCH是你分支名)

git rm -rf .

(刪除所有文件)

+0

好的,這非常感謝你! – Bennett 2013-02-21 17:34:10

+0

沒有問題。 upvote me; D – xero 2013-02-21 18:58:11

0

你可以重訂你的錯誤分支,從掌握的一開始啓動。這樣,它的文件就不會出現在其他分支中。

3

我對git也很陌生。我搜索了一段時間,發現了三種可能的解決方案。希望可以幫助。雖然你可能不應該以這種方式使用分支。

首先,您可以創建一個新分支bugs並檢出此分支,然後從master分支中刪除所有文件,然後創建自己的文件knownbugs.txt並進行提交。

git branch bugs 
git checkout bugs 
rm * 
echo XXXX > knownbugs.txt 
git commit -a -m "New branch with file knownbugs.txt" 

其次,你可以創建一個空的初始提交併從它派生你的分支。

git commit --allow-empty 

會做這項工作。

更多細節:Creating branches on an empty project in git

第三,你可以手動管理裁判和索引中的git:

git symbolic-ref HEAD refs/heads/bugs 
rm .git/index 
echo XXX > knownbugs.txt; git add knownbugs; git commit -m 
git checkout -f master 
git checkout bugs 

請參考Creating a git branch without ancestry以獲取更多信息。

+0

這幫了很多謝謝你的答案! – Bennett 2013-02-21 17:34:44