奇妙な git の問題です。分析を手伝ってください。
我想大声告诉你
我想大声告诉你 2017-05-02 09:33:59
0
3
565

たとえば、ワークスペースに test.html という新しいファイルを作成し、次に git status を実行します。

git は、この新しく追加されたファイルを検出し、追加するように求めます。ストレージ領域を一時的に追加します。
次を実行します:
git restart --hard
git のステータスを確認してください:

まだです。ファイルが追加されたばかりの git status ヒント、新しく追加された test.html は削除されていません。

今すぐ実行します:
git add dist/test.html
git ステータスの表示:

新しく追加した test.html を一時保存領域に置き、次のコマンドを実行します:
git restart --hard
もう一度 git ステータスを見ると、ワークスペースとステージング領域はすべてクリーンで、新しく追加された test.html も消えています。

2 つの操作の違いを要約します。
新しい test.html ファイルも作成します
1 つ目は、直接 git restart --hard を作成することです。 new test.html ファイルはワークスペースに保持されます
2 番目の方法は、最初にこの新しい test.html ファイルを追加し、それを一時記憶域に追加してから、git restart です。 --hard の場合、ワークスペース内の test.html ファイルも削除されます。
git replace --hard が最後に送信されたレコードでワークスペースとステージング領域を上書きする場合、最初のケースでは test.html を削除する必要があります。 git replace --hard が追跡されていないファイルを処理しない場合、2 番目のケースでは、test.html はワークスペースから削除されません。
私はすでにめまいがして git の応答を待っています。これはおそらく git のバグだと思います。

我想大声告诉你
我想大声告诉你

全員に返信(3)
小葫芦

git replace --hard は、ステージング領域とワークスペースの内容を HEAD が指すバージョンにリセットします。
つまり、2 番目のケースでは、ステージング領域と作業領域の test.html が失われています。
最初のケースについては、最初の画像をよく見ると、test.html が Untracked ファイルであることがわかります。これは、ファイルが追跡されていないことを意味するため、もちろん削除されません。

いいねを押す +0
给我你的怀抱

リーリー

git reset それはステージ領域と作業領域に影響します (あなた自身が言いました)。つまり、Git にバグがあるということではなく、基本的な概念を理解していないということです。

いいねを押す +0
淡淡烟草味

1. ステージング領域を元に戻すには、git restart を使用します。
2. ワークスペースを元に戻すには、git checkout を使用します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート