問題タブ [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 commit を削除して、変更を保持することはできますか?
私の開発ブランチの 1 つで、コードベースにいくつかの変更を加えました。取り組んでいた機能を完成させる前に、現在のブランチを master に切り替えていくつかの機能のデモを行う必要がありました。しかし、「git checkout master」を使用するだけで、開発ブランチで行った変更が保持されたため、master の機能の一部が壊れてしまいました。だから私がしたことは、コミットメッセージ「一時コミット」を使用して開発ブランチの変更をコミットし、デモのマスターをチェックアウトすることでした。
デモが完了し、開発ブランチでの作業に戻ったので、行った変更を保持しながら、行った「一時的なコミット」を削除したいと思います。それは可能ですか?
git - プッシュされた git コミットを 1 つに変換する
私が作成する新しいプロジェクトにはボイラープレートを使用しています。ただし、定型文で行ったコミットは新しいプロジェクトに反映されます。1 つのコミットにすべてを含め、古いコミット履歴を削除する「初期コミット」を作成するにはどうすればよいですか?
git - git push -f: 他の人が確実に追いつくには?
注:git push -f
質問がよくあることは承知していますが、この特定の質問に対する回答をどこにも簡単に見つけることができませんでした。私の問題をある程度解決するだけでなく、包括的な回答が必要です。質問の最後に、自分で解決策を提案します。
(職場で)すべきではないブランチにいくつかの変更をプッシュしました。私はすでに変更を行っていますが、チーム コーディネーターの 1 人が、元に戻すコミットによって履歴が乱雑にならないように、git revert
実際に行ってほしいと言いました。git reset <old commit> && git push -f
そのブランチを使用する人はほとんどいないため、リスクを負う価値があると考えました。
うまくいきましたが、履歴がまだ分岐していないため、すでにコミットをプルした人が誤ってリモートブランチを再び早送りする可能性があるのではないかと心配しています(古いコミットにリセットしただけで、他にはコミットしていません)その上にコミットします)。
もし私がgit reset <old HEAD commit> && git status
、Git がそれは の数コミット前であると言っていることorigin/<branch>
に気付きgit push
ました。
git pull
レポは最新であり、バックトラックしないと言います(とにかく、そうすべきではないと思います)。では、全員が正しい HEAD に戻ってorigin/<branch>
そこから作業できるようにするにはどうすればよいでしょうか? git reset origin/<branch>
そのブランチでの作業を再開する前に、全員に依頼する必要がありますか? もっと簡単でエラーが起きにくいものを本当に求めていました (彼らはそれを忘れるかもしれません)。
共有レポのブランチを git リセットするべきではないことはわかっていますが、それがどのようなものかはご存じのとおりです... 時には、単に冒険的な気分になったり、上司にそうするように頼まれたりして、それが間違っていることを知っていても、とにかく教育経験:P
git - git reset --soft インデックスの変更
git の初心者として、私ができるさまざまなリセットを調査しています。
git reset --soft
インデックスや作業ディレクトリを変更せず、レポのヘッドのみを変更するという印象を受けました。
そのため、過去にコミットに対してソフトリセットを実行しました。
私のインデックスも作業ディレクトリも変更されないはずgit status
なので、作業ディレクトリ内のファイルは、先ほどのリポジトリ内のファイルよりも最新であるため、追跡されていない変更があると言うことが期待されます。に戻りました。
しかし、変更したファイルがインデックスにあることがわかりますか? どうすればいいの?私はそれらをコミットしていません。結局、ソフトリセットはインデックスを変更しますか?
git - サーバー上で git remove commit
私はgitで管理されている私のプロジェクトについていくつかの間違いを犯しました:
ここでいくつかのガイドといくつかの投稿を読んで、次のコマンドを作成しました。
コミット a77ec5f は最後の「良い」コミットです
この後、ファイルは私のローカルコピーにありますが、次のことを行うとgit status
:
そして今、私が遅れている4つのコミットが削除されることをサーバーに伝えるにはどうすればよいですか? ありがとう
git - Git:「git reset」後にコミットメッセージを再利用/保持する方法は?
--amend
Git ユーザーとして、私は定期的に状況に遭遇します。1 つ以上のコミットを修正コミットに適合しない方法で再加工する必要があるということですrebase -i
。通常、私は次のようなことをします
私は、分別のある構成されたコミット メッセージを非常に真剣に受け止めています。それらには通常、変更の参照と正当化を含むより大きなテキストが含まれています。今まで、ソートされていない古いコミット メッセージを復元するための長いプロセスと、コピー アンド ペーストのプロセスにかなり悩まされていましgit reflog
たgit log
。
これに対処するより良い方法はありますか?また、複数のコミットで構成されている場合、どうすればよいでしょうか?
編集:これについて少し考えた後、私が探しているのは、修正/修正コミットが適切でないコミットメッセージ用のgit stashのような機能だと思います。
git - git reset --hard 後も残るローカルの変更を保存する方法
コミットしたくないローカルの変更がいくつかあります (個別のファイルではないため、.gitignore は機能しません)。
私はgit reset --hard
時々、コミット後に時折の変更をクリアすることもありますが、残しておきたい有用な変更も明らかに失われます。
有用な変更を保持するにはどうすればよいですか?