2014-04-12 38 views
6

有沒有標準的方式來同步git工作區與另一個目錄。 假設我有一個在git版本控制下的目錄。該目錄將被移出現場並進行更改並完成(文件被更改,添加和刪除)。然後它被返回到我的機器。我怎樣才能輕鬆地將所有這些變化整合回git中。同步git工作區與另一個文件夾

如果我只是將文件複製過來,那麼新文件和更改後的文件都可以,但關於刪除文件的信息將會丟失。有沒有什麼辦法可以輕鬆完成目錄不在git時刪除的文件的git rm?

回答

4

您可以使用--work-tree選項git command本身:

cd /path/to/your/local/repo 
git --work-tree=/path/to/your/other/directory status 
git --work-tree=/path/to/your/other/directory add -A . 
git checkout . 

將檢測新的,修改刪除的文件。
Mike Lippertanswer中提到了最後一條命令,用於將您自己的本地工作樹與剛剛更新的索引進行同步。

這樣一來,你是比較:

  • 的 「another/directory」(由--work-tree選項參考)
  • 內容與您當前的回購(你在哪裏執行git)指數
5

VonC的答案看起來像你想要的第一部分。

--work-tree選項運行git --work-tree=/path/to/your/other/directory add -A .索引是從當地的(原)目錄不同但是經過對git(1) Manual Page

描述。要使本地目錄與索引(包含脫機目錄中的所有更改)匹配,請運行git checkout .

git --work-tree=/path/to/your/other/directory add -A . 
git checkout . 
+0

+1。好點子。我在我的回答中也包含了結帳步驟。 – VonC

相關問題