2012-06-19 40 views
0

我有一個文件,並在其子文件夾,一個文件夾,我創建了一個分支,我一直在編輯這個文件夾,實際上犯了這個(但與主尚未合併)。Git的更新/更換文件夾和內容

不過,我想我可能有一個問題,如果我不合並。

假設我的文件夾結構是這樣的:

Folder 
    - Sub-Folder A 
    - File A1 
    - File A2 
    - File A3 
    - Sub-Folder B 
    - File B1 
    - File B2 
    - File B3 

現在我已經編輯成爲:

Folder 
    - Sub-Folder A 
    - File A2 (Edited) 
    - File A3 
    - File A4 
    - Sub-Folder C 
    - File C1 
    - File C2 
    - File C3 

IE,文件A1刪除,文件編輯A2,新A4的文件,分文件夾B和所有的內容刪除,新的子文件夾下

我擔心的承諾似乎只是增加了新的和編輯的東西,而且移除/刪除的東西仍然會在那裏當我合併。

這是這種情況?如果有,我該如何解決?

我想我應該創建一個主分支溫度,git的RM文件夾-f,合併這回主刪除的文件夾,然後在與編輯的分支合併。

這是一個有效/可行的方法?

回答

1

你需要告訴git的有關您刪除的文件。如果您執行git狀態,則應列出:A/A1,B/B1,B/B2,B/B3已被刪除。有重新創建本地的情況,然後刪除的文件,git的狀態給出:

# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: A/A4 
# new file: C/C1 
# new file: C/C2 
# new file: C/C3 
# 
# Changes not staged for commit: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: A/A1 
# deleted: B/B1 
# deleted: B/B2 
# deleted: B/B3 

如果你做 '混帳RM' 每個A/A1,B/B1,B/B2和B/B3的(儘管文件不再存在於磁盤上)並提交這些更改,那麼它應該都可以。

這有幫助嗎?如果我需要澄清,請告訴我。

0

你的工作/變更分支從你的主人是一個參考。如果您刪除,更改,重命名您的工作分支並提交任何內容。 Git會以合適的方式合併所有內容。但重要的是你的工作和主分會喊我是乾淨的。

的清理,你只需要「混帳添加」。和「git commit」。沒有必要使用「git rm」進行適當的合併。

git的狀態喊這樣的,在這個例子中,我在我的刪除分支)工作:

git status 
# On branch remove 
nothing to commit (working directory clean) 

現在你可以切換到主分支:

git checkout master 

檢查,如果主清潔:

git status 
# On branch master 
nothing to commit (working directory clean) 

現在在你的主分支合併時

git merge remove 
Updating 7989dd1..d28cdee 
Fast-forward 
{B => A}/demo2 | 0 
1 files changed, 0 insertions(+), 0 deletions(-) 
rename {B => A}/demo2 (100%) 

git的狀態喊具有相同的輸出(合併之前)

git status 
# On branch master 
nothing to commit (working directory clean) 

你可以踢的老枝,如果你想:

git branch -d remove 
Deleted branch remove (was d28cdee).