2012-03-04 130 views
0

我剛剛開始使用GIT昨天,我試圖做一些事情,但我認爲某處出了問題。讓我解釋一下我的情況:混帳git合併

我開始了我的工作目錄(主分支)看起來像這樣

 
folder1 
file1 
file2 
file3 

我創造了另一個分支與$ git checkout -b X命令

在此之後,我繼續刪除文件夾中的所有文件rm -r *,然後添加幾個文件,所以工作目錄變得如此(我認爲我不應該這樣做)

 
xFile1 
xFile2 

,然後進行一些測試後,我來到了一個事實,即分支穩定。我想進行合併,所以我做了

 
$ git checkout -b master 
$ git merge X 

現在,合併,我的目錄(文件夾1)後,得到了去除。我真正想要的是將xFile1和xFile2帶入主分支。

我很困惑這個,請幫忙!

+0

你真的提交任何東西到分支X? – meagar 2012-03-04 05:08:05

+0

是的是的.. xFile1和xFile2被承諾到X – Shrayas 2012-03-04 05:17:49

+0

如果你沒有提交這些文件的*刪除*,那麼應該沒有問題。您還必須刪除這些文件才能生成您描述的症狀。 – meagar 2012-03-04 05:19:40

回答

1

您可能應該有rebased而不是合併。代幣更多的是你想要表達的 - 你有一個很好的代碼基地X,你想添加什麼在master什麼是你放在X

如果使用git rebase Xmaster分支,它將在master發揮所有提交上X

+0

噢,我明白了:)讓我快速嘗試一下並回復你 – Shrayas 2012-03-04 05:19:01

+0

嘿@kelloti,我做了'rebase',它工作的很好,除了當它應用了從X提交的提交時,我刪除了'folder1',所以我失去了這一點。我能做些什麼呢? :( @meagar,請看看這個.. – Shrayas 2012-03-04 05:38:15

+0

@Shrayas我認爲你正在尋找'-i'選項'git rebase'(交互式)http://book.git-scm.com/4_interactive_rebasing 。html – kelloti 2012-03-04 07:55:36

0

頂你創建回來掌握之前分支X提交?如果不是,那麼它總是會在git中造成不測。

+0

是的,我確實創建了一個提交.. – Shrayas 2012-03-04 05:16:19

1

您的混淆部分看起來像您認爲合併忽略了您的刪除操作。事實上,當你刪除這些文件並承諾改變時,它記住了這一點。合併爲主,然後重播該刪除。

+0

是的。我剛剛意識到,現在:(所以,什麼是正確的工作流程?是不是應該刪除文件?但如果我的功能真的不依賴於這些文件? – Shrayas 2012-03-04 05:44:08

+0

@Shraya:如果你想要的文件,不要刪除如果你誤刪了它們,用git resetgit checkout來檢索它們 – 2012-03-04 05:46:08

+0

那麼這個文件對'master'分支是必須的,但對於'X'來說不是必須的,對吧?那麼呢?我想我應該'然後呢? – Shrayas 2012-03-04 05:48:41