1

さて、Windows には git 1.7.11.1 があり、2 つのブランチを持つローカル テスト リポジトリがあります。1 つは、index.php と help.php のマスターです。次に、slave という別のブランチを作成します :)

git から実行するbash rm help.phpと、フォルダーから消えますが、何もステージングしません。チェックアウト マスター ブランチに切り替えると、マスター ブランチでは変更されていないため、ファイル help.php が復元されるはずですよね。

そして、それはしません。スレーブ ブランチに戻ってコミットし、チェックアウト マスターに切り替えると、help.php が表示されます。それが機能するはずの方法ですか?なんで?

4

1 に答える 1

2

help.phpinのバージョンのようmasterに聞こえますslaveが、同じバージョンです。それ以外の場合、git ではブランチを変更できません。

ステージングされていない変更とステージングされた変更はまだどのブランチにもコミットされていないため、競合がなければ、git はこれらの変更をブランチ間で実行できるようにします。に削除をコミットしたslave場合、切り替えたときにファイルが戻ってきますmaster

そのままで、(いずれかのブランチで) 削除を「元に戻す」ことができます:

git checkout -- help.php

これにより、 のインデックス バージョンがhelp.php作業ツリーにチェックアウトされます。

削除をステージングしたがコミットしていない場合は、次の方法でHEADバージョンをチェックアウトする必要があります。

git checkout HEAD -- help.php
于 2012-06-23T15:11:44.430 に答える