問題タブ [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は、コミットされていない、または保存されていないすべての変更を元に戻します
最後のコミット以降のすべての変更を元に戻そうとしています。この投稿を見た後、試しgit reset --hard
てみました。ヘッドが18c3773になっていると応答します...しかし、ローカルソースを見ると、すべてのファイルがまだそこにあります。私は何が欠けていますか?git reset --hard HEAD
git - git reset で二重ダッシュ [--] オプションは何をしますか?
次のようなコマンドを見てきました:
このコマンドは、コミット e542 からのファイル readme.txt の内容をインデックスに入れることを理解しています。しかし、--
そこで何をしているオプションは何ですか?
git reset のマニュアル ページには、最初の 2 つの形式ではオプションとしてリストされていますが、その意味がわかりませんでした。
git - これはgitのものを元に戻すための良い戦略ですか?
これまで、マスターブランチに何か間違ったことをコミットしてプッシュした場合、それを解決する方法は、gitログが次のようになっていると仮定します。
私が過去の状況を「解決」した方法は次のとおりでした:
はい、それは機能します...しかし、コミット履歴を効果的に削除するため、あまりエレガントには見えませんでした。
それで、私のエゴを破壊した状況の後、私はより良い方法をチェックし、git revertのものを出しました、本質的に私は今使っています
git revertは3つのコミット(元に戻されたハッシュごとに1つ)を作成します。その後、リモートを更新するためにプッシュが必要です。
さて、質問は、この戦略は正しいですか?リポジトリの履歴はトランク化されていないため、リセットよりもはるかに良く見えます。最終的に誰かが問題が発生した理由を確認したい場合は、いつでも実行できます。
この推論は正しいですか、それとも私はまだ基本的な概念を欠いていますか?
ありがとう
git - 「git-pull」自動マージ後にコミット メッセージを変更するにはどうすればよいですか?
ときどき、結果 a として自動マージが生成されると、協力者が「パニック」になりgit-pull
、デフォルトのコミット メッセージをそのまま受け入れることがあります。このコミットがプッシュされる前に、メッセージが修正されることを確認したいのですが、--amend
うまくいかないようです。このシナリオで生成されたメッセージを修正する最善の方法は何ですか? 私が彼らのために思いつくことができる最善の指示は
しかし、それは少し怖く ( reset
)、エラーが発生しやすいようです (リモート追跡ブランチを明示的に入力する必要があります)。
リモート追跡リポジトリとマージして生成されたばかりのコミット メッセージを変更する簡単な方法はありますか? なぜ機能しない--amend
のですか?
git - コミットを保持したまま作業ディレクトリを元に戻す
これは非常に簡単な質問かもしれません。作業をコミットしてから、検索と置換スクリプトを起動しましたが、それを元に戻したいので、作業を実際のコミットに落とし込みます。それを行うための正しいコマンドは何ですか: git reset soft/hard または git amend については知っていますが、適切ではありません
git - サブディレクトリを git reset --hard する方法は?
UPDATE² : Git 2.23 (2019 年 8 月) では、これを行う新しいコマンドがあります。受け入れられた回答
git restore
を参照してください。更新:これはGit 1.8.3の時点でより直感的に機能します。私自身の回答を参照してください。
次の使用例を想像してみてください: Git 作業ツリーの特定のサブディレクトリにあるすべての変更を取り除き、他のすべてのサブディレクトリはそのままにしたいと考えています。
できます
git checkout .
が、git checkout . スパースチェックアウトによって除外されたディレクトリを追加しますはありますが
git reset --hard
、サブディレクトリに対しては実行できません。を使用して現在の状態をリバース パッチできます
git diff subdir | patch -p1 -R
が、これはかなり奇妙な方法です。
この操作に適した Git コマンドは何ですか?
以下のスクリプトは、この問題を示しています。How to make files
コメントの下に適切なコマンドを挿入します。現在のコマンドはa/c/ac
、スパース チェックアウトによって除外されるはずのファイルを復元します。明示的に復元したくないことに注意してくださいa/a
and a/b
、私は「知っている」だけで、a
以下のすべてを復元したい. EDIT:そして、私は「知らない」b
、または他のどのディレクトリが と同じレベルにあるかも知りませんa
。
git - git reset --hard origin/master の意味は何ですか?
私はやったgit pull
とエラーが発生しました:
次の作業ツリー ファイルは、マージによって上書きされます... マージする前に、それらを移動または削除してください。
これを解決するために、次のことを行いました。
今私がするときgit pull
、それはすべて最新だと言います。これらのコマンドを実行すると正確に何が起こるか知りたいです。git fetch
ローカル リポジトリにマージせずに、リモート リポジトリから変更をフェッチすることはわかっています。
とはどういう意味git reset --hard origin/master
ですか? それはどのように機能しますか?
netbeans - netbeans で git reset を使用するには?
NetBeans での最後のコミットを元に戻したいです。
コマンドが '$ git reset --soft HEAD~' であることがわかりましたが、NetBeans7 IDE でそれを行うにはどうすればよいですか?
git - リセット後にGitコミットが失われました--hard。fsckで見つからず、reflogでも見つかりません
いくつかのコミットされていないファイルの作業ディレクトリをクリアしたかったのですが、誤って実行されましgit reset --hard
た。
以前の(プッシュされていない)コミットを失ったことに気付いたので、実行しましgit reset --hard ORIG_HEAD
た。これは私の失われたコミットに私を連れて行かなかった。
実行git reflog
しましたが、コミットがそこにリストされていませんでした。私も実行しgit fsck --lost-found
ましたが、リストにコミットはなく、無関係なブロブとツリーがいくつかありました。
失われたコミットの参照が見つからないため(.git/COMMIT_EDITMSG
関連するコミットメッセージと変更のリストがまだあるものを除いて)、コミットを回復する方法がわかりません。
失われたコミットを取り戻す方法はありますか、それとも一晩中準備をする必要がありますか?
git - Git リセットが機能しない
コミットを行い、いくつかの変更をプルしてマージし、2 回目のコミットを行いました。最初のコミットに戻りたいとき、コマンドを実行しました
応答は「HEAD is now at <sha hash>」でしたが、コードはコマンドを実行する前と同じように見えます。通常は以前と同じように変更されますが、何かが正しく機能していないようです。ヘッドをリセットする前に、別のコマンドを実行してマージを解除する必要がありますか?
追加情報
実行git status
すると、次のように表示されます。
app/assets/images/.DS_Store.orig は追跡されていません
追加できます。
によるとgit reflog
、ハッシュ1をコミットする前にプルしました(「マージ前」と見なします)。プル用の sha hash2 があります (表示されgit log
ませんでした)。hash1 と hash2 を掘り下げると、行った変更が表示され、そこから元のコードを再構築できました。それでも、これは非常に奇妙に思えます。それらのいずれかにしようとするgit reset
と、マージ前からコードを取得できません。