2012-10-11 83 views
1

小白與git:
擴大對this問題有點創建的Git分支和commiting成單獨的分支

我創建了一個信息庫,並承諾我README.mdmaster分支。
我的本地文件夾結構是:

projectName 
--README.md 
-- + part1 
-- -- README.md 
-- -- + src 
-- + part2 
-- + ... 

我在projectName文件夾初始化git init,並能夠做出承諾。

然後我做git checkout -b part1
cd .\part1git add .\README.md .\src

當我承諾,推動git push -u origin part1和檢查我的倉庫我的主人分支從part1有所有的文件和part1分公司有正確的文件,但它包含了從主分支README.md

我'刪除'主README.md我想從分支part1提交我的本地part1文件夾中的文件/文件夾。我遇到的問題是當我提交part1分支中顯示的實際文件夾part1時。我只想讓內容出現。

EDIT_1
我想創建多個分支。提交到master分支後,我這樣做:
git checkout -b part1
當我從part1犯我不從master湊湊熱鬧未來希望README.md。做git rm README.md從我的本地目錄刪除文件。

UPDATE
我對我自己的問題的第二部分感到困惑。 @willoller澄清。

+1

分支不同於子目錄或子項目。每次提交都會跟蹤整個項目的狀態。如果您確實想要分別跟蹤每個子目錄,則需要將每個子目錄作爲自己的存儲庫,或者使用子模塊。 – twalberg

+0

我沒有試圖追蹤每個子目錄......對於這種混淆抱歉。我希望分支機構遵循我的子目錄(僅以抽象方式)。我想分支'part1'重合到'part1'文件夾。當我'git checkout part1'並提交part1中的文件夾項目時,我想分支'part1'來反映我在文件夾中的內容。 – user1460015

+0

Git不能這樣工作。您使用子目錄跟蹤整個目錄。如果你想讓它們分開,你應該製作它們自己的存儲庫。 – willoller

回答

1

使用以下命令git checkout -b new_branch當前分支創建一個新分支。

因此,您從master創建了part1,並且您的README.md從master複製而來。

「-u」創建與遠程分支的關係。

如果您想將分支推送到遠程主機,則可以使用git push origin my_branch

要從分支中刪除文件,請使用git rm,然後提交更改。

我希望我能幫上忙。

+0

'git branch'顯示兩個分支:'master'和'part1'。分支'part1'完全按照您的說明創建。 'git checkout part1'把我放在'part1'分支中。我不想在這個分支的主人的README.md。我在'git add' part1文件/文件夾之前只是'git rm'嗎? – user1460015

+0

只需使用part1中的「git rm README.md」和「git commit」來修復。 「git status」顯示當前分支中修改的當前狀態 – user1589514

+0

'git rm '的問題在於它從我的本地目錄中刪除文件。我只是想從HEAD中刪除它。這會工作相同的'git reset HEAD README.md'? – user1460015