2011-05-01 86 views
1

我們有2個開發者使用EGit。一個適用於Windows,一個在Linux上工作使用egit從中央git存儲庫推入/拉出後沒有樹衝突

而且我們設定的協作策略如下:

  • 有一箇中心(裸)庫
  • 最初,每個開發者從做退房中央存儲庫並在本地工作。
  • 當兩者需要同步工作時,我們從中央資料庫中拉出/推送。

我們使用中央存儲庫,因爲我們可以在未來與團隊中的更多開發人員輕鬆協作。

一切正常,直到我們檢測到一個開發人員修改一個文件被另一個文件移動到另一個目錄時根本沒有衝突。這裏是步驟:

  • 一個開發人員,將文件移動到另一個位置;將其提交給他的本地存儲庫;推送到中央存儲庫。
  • 另一個更改該(相同)文件的內容;將其提交到他的本地存儲庫。拉中央存儲庫。

我們預計當第二個開發人員進行「拉動」時會出現衝突報告。但沒有衝突。並有2個文件出現在他的工作目錄(在他的本地倉庫):

  • 的一個,他修改
  • 和第一開發商已經移動到其他目錄的一個。

有人能告訴我們我們的錯誤是什麼?

我們的工作方式是否違反了git的設計?

我們對git很陌生(熟悉CVCS很長一段時間)。遇到這個問題,我們非常擔心,因爲這意味着合併團隊的工作將會非常困難。我們相信我們必須做一些不正確的事情。謝謝你澄清我們。

回答

0

我的猜測是你沒有移動文件。當你移動文件時,它是一個刪除和創建。當人們添加更改時,他們通常會忘記添加-u或-A選項,以包含新文件,跟蹤文件以及刪除的文件。

移動文件之後,請確保您執行更改的刪除端。如果有疑問,用git log --stat檢查你是否從移動提交中的舊位置移除了該文件。

希望這有助於

0

因爲我使用Egit,沒有命令行。我確定在提交時檢查了刪除的文件和添加的文件。

但奇怪的是,我已經再次嘗試:

  • 刪除我的本地庫再次(從庫視圖,右鍵單擊,刪除...)
  • 結帳從中央回購(克隆)
  • 並重做我上面提到的確切步驟

一切按預期工作。我之前的本地存儲庫一定有問題,因爲我可以創建團隊>拉取。我需要做一個Fetch然後合併。再次檢查像上面一樣。現在好了。