2013-03-18 67 views
1

我在當前分支中從另一分支中的特定路徑進行了一些更改。 (這裏是一個需要把整個的依賴。)無法使用git checkout將分支中的某些路徑還原爲另一分支的某些路徑

我最初給整個使用下面的命令這些變化:

git checkout master 
git checkout -b new_branch 
git checkout other_feature path/to/dependency 

現在我需要拆洗這種依賴,或者在它至少方面(子路徑內path/to/dependency)。

我已經運行git diff --name-status master..new_branch path/to/dependency並如預期顯示的差異。

但是,git checkout master path/to/dependency未成功將此目錄的內容恢復爲主目錄的內容。爲什麼會這樣?

回答

1

以防萬一,儘量:

git checkout --force master path/to/dependency/subpath/to/revert 
# or: 
git checkout --ours master path/to/dependency/subpath/to/revert 

git checkout man page

-f 
--force 

當切換分支,繼續即使索引或工作樹從頭部不同。這用於丟棄本地更改。

當從索引檢查出的路徑,不因未合併條目失敗;相反,未合併的條目將被忽略。

那第一個選項「--force」應該是你在找什麼,但如果合併都參與其中,那麼第二個選項(--ours,不--force兼容),也可以幫助你。

--ours 
--theirs 

當檢出從索引路徑,檢查階段#2ours)或#3theirs)用於未合併的路徑。

+0

感謝您的回答。但是,嘗試強制我們的結帳時出現以下錯誤消息:'致命:git checkout:--ours/- 他們的--force和--merge在檢出索引時不兼容。「# – bcmcfc 2013-03-18 12:21:00

+0

@bcmcfc right ,那麼只有一個或另一個。 – VonC 2013-03-18 12:22:12

+0

哦。我嘗試了每個沒有效果。 – bcmcfc 2013-03-18 12:33:01

相關問題