問題タブ [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.
git - ローカルの git コミットをキャンセルするには?
私の問題は、ファイルを変更したことです。たとえば、README に新しい行 ' this for my testing line ' を追加し、ファイルを保存してから、次のコマンドを発行しました。
コードを GitHub にプッシュしませんでした。ここで、このコミットをキャンセルしたいと思います。
このために、私は使用しました
しかし、新しく追加された ' this for my testing line ' という行が README ファイルから失われました。これは起こらないはずです。そこにコンテンツが必要です。コンテンツを保持し、ローカル コミットをキャンセルする方法はありますか?
git - マスター ブランチの「中間」コミットをポップアップして破棄する必要があります。どうすればいいですか?
たとえば、次のマスター ブランチでは、コミット af5c7bf16e6f04321f966b4231371b21475bc4da だけを破棄する必要があります。これは、以前のリベースによる 2 番目のコミットです。
私は維持する必要があります
- 最初のコミット 60b413512e616997c8b929012cf9ca56bf5c9113、
- 3 番目のコミット e6523efada4d75084e81971c4dc2aec621d45530 および
- 最後のコミット 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
「捨てる」ちょうど 2 番目のコミットaf5c7bf16e6f04321f966b4231371b21475bc4da
どうやってやるの?前もってありがとうルカ
git - 「git rm --cached x」対「git reset head -- x」?
git rm
ステージング領域からエントリを削除します。git reset HEAD
これは、ファイルを「ステージング解除」するものとは少し異なります。「アンステージ」とは、ステージング領域を、変更を開始する前の状態に戻すことを意味します。git rm
一方、ファイルをステージから完全にキックするだけなので、次のコミットスナップショットには含まれず、効果的に削除されます。デフォルトでは
git rm file
、ファイルはステージング領域から完全に削除され、ディスク (作業ディレクトリ) からも削除されます。ファイルを作業ディレクトリに残すには、git rm --cached
.
git rm --cached asd
しかし、正確にはとの違いは何git reset head -- asd
ですか?
git - ファイルやフォルダを含むコミットされていない変更を元に戻す方法は?
作業ツリーとインデックスのすべてのコミットされていない変更を元に戻し、新しく作成されたファイルとフォルダーも削除する git コマンドはありますか?
git-rebase - 分岐後に書き直されたgitブランチのリベース
私はgitリポジトリと2つのブランチmaster
とst
(から分岐master
)を持っています。st
にリベースしたいmaster
。しかし、master
他の誰かによって大規模に書き直されました。率直に言って、理由はわかりませんがfetch
、新しいブランチmaster
とreset --hard
プライベートブランチに促されました。
手動でマージする必要のある、自明ではない競合ファイルのリストを試してみるとgit-rebase
、2つの画面ページにまたがっています。実際の変更はそれほど多くないことを私は知っています。1つは、st
ブランチが触れたファイルはほんの一握り(10個以下だと思います)です。
リベースの他に、パッチを作成して適用しようとしましたが、いくつかの競合もあり、解決方法がわかりません。
git - GITプルがコミットを削除しました
git pullの後、マージ前にコミットIDを使用してマージを元に戻すためにgit resetをハードに実行しました。どういうわけか、コミット全体が失われ、履歴にコミットが表示されません。しかし、私はコミットIDを持っており、gitshowコマンドで変更を確認できます。
変更を元に戻す方法と、行った間違いを追跡する方法
git - Git: コミットを取り消して最後のブランチに戻す方法
うーん...何をしているのか(またはGitが何をしているのか)を本当に知らずに、かなり複雑な変更(サブディレクトリとファイルの名前変更を含む)を誤ってコミットしました。
私は今、次のようなすべてを元に戻したいと思っています:
- commit は完全に取り消されます (コミットが一度も行われていないかのように、おそらく履歴からも削除されます)
- 現在の作業ディレクトリ (場所
.git
) を特定のブランチに復元します (今のところ、最後のブランチで十分です)。
git reset --softおよびgit reset --hard への参照を見つけましたが、コマンドを完全に理解せずに時期尚早に使用すると、実際に損害を与える可能性があることをすでに証明しています。:)
git reset の man ページを見つけましたが、次の点についてまだ混乱しています。
- とは
HEAD
? HEAD
とはどう違い* master
ますか?- 私の状況 (上記参照)
--soft
では、--hard
またはその他 (さらに 3 つのオプション) を使用する必要がありますか? git reset
反転を「確定」するために別のコマンドを (実行後に) 実行する必要がありますか?
更新:以下の回答を読んだ後:
- 私の状況で行う必要があるのは、単一のコマンドを発行することだけであることを正しく理解してい
git reset --hard HEAD^
ますか? - リバースが正しく実行されたことを確認するにはどうすればよいですか?
git - Gitでファイルのステージングを解除する方法が2つあるのはなぜですか?
gitがgit rm --cached
ファイルのステージングを解除することを提案する場合もあれば、git reset HEAD file
。いつどちらを使うべきですか?
編集:
git - ステージング領域のコミットされていないファイルで git reset --hard を元に戻す
私は自分の仕事を回復しようとしています。私はばかげてやったがgit reset --hard
、それ以前はやっただけget add .
で、やらなかったgit commit
。助けてください!これが私のログです:
git reset --hard
この状態で元に戻すことは可能でしょうか?
git - Git:ローカルの変更を元に戻します。gitadd。+ git rm?
Githubでいくつかの一般的なワークフローを理解するのに助けが必要です。私はVSTFSのバックグラウンドを持っているので、ご容赦ください。
保留中の変更を元に戻す
gitリポジトリのクローンをローカルファイルシステムに作成したとしましょう。この時点で、プロジェクトのローカルファイルはリモートリポジトリにあるものと正確に一致します。
次に、コードにいくつかの変更を加え、いくつかのファイルのローカルバージョンを変更することにしました。いくつかのテストを行った後、ローカルの変更を破棄し、ローカルファイルをリモートリポジトリにあるものに戻したいことがわかりました。
これらのローカル変更を元に戻し、リポジトリ内の現在のバージョンに復元するにはどうすればよいですか?
すべての変更をコミットする
リポジトリクローン内のローカルファイルの内容を変更したり、新しいファイルを追加したりして、変更をプッシュしたい場合は常に、コメントとともに「git add。」、「git commit」を発行し、次に「gitpush」をマスターに発行します。
ただし、リポジトリで追跡されているファイルをローカルで削除すると、「gitadd」と表示されます。rmの変更をキャプチャしません。代わりに、リポジトリを更新するために「gitcommit」する前に「gitrm[filename]」を実行する必要があります。私はいつもこれをするのを忘れています。
「gitadd」を実行するgitコマンドはありますか。ワンステップでローカルに削除したファイルを「gitrm」しますか?ローカルファイルを変更していくつか削除した後、「gitcommit」する前にすべての変更をキャプチャするコマンドを1つだけ発行したいと思います。