問題タブ [git-reset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5009 参照

git - 「Git Reset --hard HEAD^」コマンドをやり直す

重複の可能性:
git reset --hard HEAD~1 の取り消し

コマンドラインを使用しました:

git reset --hard HEAD^

どうすればやり直せますか?

0 投票する
4 に答える
1088 参照

git - ダミーのGitの復帰、チェックアウト、リセット

申し訳ありませんが、このgitコマンドのトリオは私の知性に負担をかけています。

これらの3つのgitコマンドをカバーするために、初心者向けのグループwikiを設定することは可能ですか?私が学ぼうとしているのは、ファイルとプロジェクトを以前の状態に復元またはロールバックする方法です。

私はSubversionやその他の集中型バージョン管理ソフトウェアの経験がないので、それらがどのように異なる方法で動作したかを参照する必要はなく、混乱を招くことがよくあります。

ありがとう。

0 投票する
7 に答える
145643 参照

git - Git Revert、Checkout、Resetの違いは何ですか?

git revertファイルとプロジェクトを以前の状態に復元またはロールバックする方法を学習しようとしていますが、、、、checkoutの違いがわかりませんreset。一見同じ目的のために3つの異なるコマンドがあるのはなぜですか?また、誰かがどちらかを選択する必要があるのはいつですか?

0 投票する
1 に答える
483 参照

git - 'git reset --soft'はno-opコマンドですか?

ドキュメントには、--softオプション「...インデックスファイルや作業ツリーにはまったく触れませんが、それらが適切な順序である必要があります。これにより、変更されたすべてのファイルがgitstatusとして「コミットされる変更」のままになると記載されています。それを置くだろう」

また、指定されていない場合、ターゲットは<commit>デフォルトでHEADになることも説明しています。

これらを考慮して、次のコマンドは何かを変更しますか?

$ git reset --soft

0 投票する
2 に答える
3093 参照

git - 'git reset --hard' 複数のリベース ブランチ

git rebase最近実行したいくつかのブランチを含むローカル ref があります。

それは次のようになりました:

次の一連のコマンドを使用します。

問題?

git rebase --no-ff以前にマージしたすべてのブランチを追跡するために、うっかり忘れていました。gitk --allさて、マージがどこで行われたかを ( を使用して) 簡単に知る方法がありません。と の間のどこかで発生したことは知っていますが、各コミットを個別に実行しないと、道に迷ってしまいますHEAD@{E}HEAD@{J}

私がやろうと決めたこと:

したがって、ここgit reflog提案されているように使用し、2 つのリベースが発生する前に元の状態に戻してから、提案したようにしようと考えました。 git reset --hard HEAD@{#}git rebase branchname --no-ff

私の究極の質問はこれです(いくつか追加):

最初のコミットの前に最後のコミットまで戻ることはできますrebaseか?それとも、各リベースを個別にロールバックする必要がありますか? トップブランチのそれぞれは、私が持っていたものとまったく同じですか (私が探している高速転送されていないマージを示しています)? 私はこれを難しくしすぎていますか/これを行う簡単な方法はありますか? 私が考えるのを怠っていることはありますか?

ありがとう。

0 投票する
1 に答える
159 参照

git - git reset commit と push の問題

最近、私のチームで、新入社員が git pull を試みたことがありました。システムにいくつかの競合が発生した後、開発者は単純に git リセット (インデックスを最後の HEAD に移動) を行いました。次に、開発者は 1 つのファイルの変更を「コミット」し、それをリモートにプッシュしました。当然、かなり多くの変更が失われました。

しかし、誰が悪い変更を行ったのか (そしてどのコミットが悪いコミットだったのか) を突き止めるのにかなりの時間がかかり、それを回復することはまったく別の努力でした。git履歴(gitkまたはgitログを使用)では、gitはコミットされたファイルのみを表示しますが、これは以前のファイルを上書きする場合です(この概念はgitではなくCVSに近いことを知っています。この場合、ファイルは以前のコミットに移動されています)。この場合、デバッグするのに最適な戦略は何ですか?

どのブランチが問題を起こしているかがわかったら、良いコミットと悪いコミットの間で git diff を実行すると、ファイルのリストが表示されますが、特定のコミットだけを見ると、以前のコミットに移動されたファイルを見つけることができます。

問題が完全に解明されていない場合は、お詫び申し上げます。

0 投票する
1 に答える
1210 参照

git - 現在の変更を上書きせずにファイルを以前のバージョンに戻す方法は?

ファイルを以前のコミットに戻そうとすると問題git checkoutが発生します。単一のファイルを元に戻すために使用できることはわかっていますが、保持したいファイルに変更があるため、どうすればよいか疑問に思っていました単一ファイルの以前のコミットと現在のHEADの間の一種の「マージ」? 使用してみgit reset sha-of-my-commit path/to/my/fileましたが、作業ディレクトリに最新バージョンを保持しながら、以前のバージョンをステージング領域に配置し、後で両方のファイルをマージする方法がわかりません。

私が今行ったことはgit diff ..sha-of-my-commit path/to/my/file、不足している行をコピーして貼り付けただけですが、これを正しく行うためのより良い方法があるに違いないと思いますか?

0 投票する
1 に答える
203 参照

git - なぜ「gitreset」"は1を返しますか?

foo.txtそれがインデックスにあると仮定します。

なぜ行うのか:

1を返します:

0 投票する
1 に答える
4040 参照

git - マージの変更を確認する前に、gitがHEADをリセットします

別のブランチからgitマージを実行すると、いくつかの競合が発生し、マージがコミットされない場合はどうなりますか?

再度マージできますか?または、gitはマージがすでに行われていると信じますか?

0 投票する
2 に答える
3675927 参照

git - 'git reset --hard HEAD'を使用して前のコミットに戻すにはどうすればよいですか?

Gitはアプリケーションに加えた変更を追跡し、変更をコミットするまでGitはそれらを保持することを知っていますが、ここで電話を切ります。

以前のコミットに戻したい場合は、次を使用します。

そしてGitは次のように返します。

次に、ハードドライブ上のファイルを以前のコミットに戻すにはどうすればよいですか?

次のステップは次のとおりです。

しかし、私のハードドライブ上のファイルはどれも変更されていません...

私は正しい/間違っていることをしていますか?