2012-12-20 28 views
2

我想用遠程倉庫更新本地系統倉庫,但我不想觸及某個特定目錄myDir的內容。 請注意,此目錄稍後在主分支中進行了更新,但我想保留其舊版本。git pull:更新倉庫而不更改特定目錄的內容

這樣做的最佳方法是什麼?

感謝, 李

+0

這些更改是否要保持由特定提交引用,還是在當前分支中未提交? – Devunwired

+0

它們在當前分支中不受支配 – user429400

+0

您當前的分支主人或另一個分支主人? (如果是另一個,那麼你可以安全地提交它們,然後重新綁定,如果你想稍後改進你的提交。) – simich

回答

0

如果你不想從遠程拉來覆蓋你還沒有承諾的工作,使用stash臨時保存你的工作。從您的工作目錄:

  1. git stash將採取所有未提交更改的將它們保存到外部堆棧
  2. 現在,您可以git pull,並改變從遠程
  3. 更新本地回購現在使用git stash popgit stash apply將您所隱藏的更改帶回工作目錄中pull

另一條提示:您可以隱藏多個工作塊,並且它們都是stac K表;使用git stash list來查看您當前隱藏的所有項目。

+0

如果我正確理解OP,'git stash'是在這種情況下不必要的複雜。 –

1

git pull只是將git fetchgit merge包裹成一個。

如果你只想更新你的回購沒有合併,一個簡單的git fetch就足夠了。

+0

讓我試着澄清一下:我的本地分支比遠程主分支要舊。我想合併來自遠程主分支的所有更改,但希望保留某個目錄的舊版本。理想情況下,我會使用帶有「忽略目錄」標誌的pull命令。 – user429400

+0

Git不允許進行部分簽出(正如您可能期望從SVN等系統那樣)。 –