1

別のブランチの特定のパスから、現在のブランチにいくつかの変更があります。(伝える必要がある依存関係がありました。)

最初に、次のコマンドを使用してこれらの変更を行いました。

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このディレクトリの内容を master の内容に戻すことはできません。これはなぜですか?

4

1 に答える 1

1

念のため、試してください:

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

git checkoutマニュアルページから:

-f
--force

ブランチを切り替える場合は、インデックスや作業ツリーがHEADと異なっていても進めます。これは、ローカルの変更を破棄するために使用されます。

インデックスからパスをチェックアウトするとき、マージされていないエントリで失敗しないでください。代わりに、マージされていないエントリは無視されます。

その最初のオプション「--force」はあなたが探しているものでなければなりませんが、マージが含まれる場合は、2 番目のオプション (--oursと互換性がありません--force) も役立ちます。

--ours
--theirs

インデックスからパスをチェックアウトするときは、マージされていないパスのステージ#2( ours) または#3( theirs) をチェックアウトします。

于 2013-03-18T11:43:48.250 に答える