問題タブ [git-revert]
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 は完全に取り消されます (コミットが一度も行われていないかのように、おそらく履歴からも削除されます)
- 現在の作業ディレクトリ (場所
.git
) を特定のブランチに復元します (今のところ、最後のブランチで十分です)。
git reset --softおよびgit reset --hard への参照を見つけましたが、コマンドを完全に理解せずに時期尚早に使用すると、実際に損害を与える可能性があることをすでに証明しています。:)
git reset の man ページを見つけましたが、次の点についてまだ混乱しています。
- とは
HEAD
? HEAD
とはどう違い* master
ますか?- 私の状況 (上記参照)
--soft
では、--hard
またはその他 (さらに 3 つのオプション) を使用する必要がありますか? git reset
反転を「確定」するために別のコマンドを (実行後に) 実行する必要がありますか?
更新:以下の回答を読んだ後:
- 私の状況で行う必要があるのは、単一のコマンドを発行することだけであることを正しく理解してい
git reset --hard HEAD^
ますか? - リバースが正しく実行されたことを確認するにはどうすればよいですか?
git - Gitを元に戻してからコミットしますが、元に戻す前にリビジョンを保持したい
私のコミットはすでにGithubにプッシュされています。
A> B> C>D>E-ヘッド
Bに戻したいので、
git reset --hard <B:Hash>
今、それは次のようになります
A>B-ヘッド
したがって、を使用してサーバーにプッシュするとgit push --force
、リポジトリ内のC、D、Eが失われます
ファイルを元に戻して、A> B> C> D>E>Fのような最後のリビジョンになるようにコミットするにはどうすればよいですか。
F =元に戻しました:B
git commit
コミットするファイルがないと言っていたので使えません。
git - Gitが元に戻り、以前の状態に戻らない
ずっと前に、ファイルのグループを含むフォルダーabcをプロジェクトに追加し、リビジョンxyzでコミットしました。多くのコミットの後、誰かがgit rm-rabcを使用してフォルダーを消去しました。この後、多くのコミットもありました。
今、私はフォルダabcを取り戻す必要があります。そうです
この後、フォルダーxyzを見つけることができますが、コミットxyzで追加されたすべてのファイルが存在するわけではありません。
私は何が間違っているのですか?commit xyzと現在の間の履歴を保持したいので、リセットはしたくありません。
git - 複数の git コミットを元に戻すための情報メッセージ
を使用して複数のコミットを元に戻す場合
コミットの 1 つだけでなく、元に戻したすべてのコミットを新しいコミット メッセージで言及するように git に依頼することは可能ですか?
私は git バージョン 1.6.3.3 を使用しているため、最近のバージョンで修正されている場合は申し訳ありません。
git - git merge コミットを元に戻してから元に戻す
私たちのチームは、こちらで説明されているように、Github プル リクエストを使用してワークフローを管理しています。承認されたプル リクエストを手動で確認すると、本番サーバーにデプロイする準備ができていないため、マージを元に戻す必要がある場合があります。
ただし、開発者が再度プル リクエストを発行しようとすると、これらの変更が元に戻されたことを認識せず、コミットが既にマスター ブランチにあることがわかります。元に戻してからの最近のコミットのみが含まれますが、私たちが本当に望んでいるのは、元に戻されたすべてのコミットと彼らの新しい作業を再紹介することです。言い換えれば、元のプル リクエストを再発行する方法が望ましいということです。
Github はこの機能をサポートしていないため (つまり、マージを元に戻したり、元のプル リクエストを元に戻したり再発行したりすることはありません)、現在、元に戻したマージを元に戻しています。これは間違っていると感じます。
git で同じ目標を達成するために他にどのような方法を使用できますか? (または可能であればGithub)
git - ダミーのGitの復帰、チェックアウト、リセット
申し訳ありませんが、このgitコマンドのトリオは私の知性に負担をかけています。
これらの3つのgitコマンドをカバーするために、初心者向けのグループwikiを設定することは可能ですか?私が学ぼうとしているのは、ファイルとプロジェクトを以前の状態に復元またはロールバックする方法です。
私はSubversionやその他の集中型バージョン管理ソフトウェアの経験がないので、それらがどのように異なる方法で動作したかを参照する必要はなく、混乱を招くことがよくあります。
ありがとう。
git - Git Revert エラー メッセージ?
.emacs.d フォルダーのリポジトリに対して行ったコミットを元に戻そうとすると、次のメッセージが表示されます。
私がやろうとしているのは、init.el ファイルに加えた変更を元に戻し、元に戻そうとしている別のコミットを続けていることです。--hard をリセットすると最新のコミットが完全に消去されることがわかっているため、リセットするよりも元に戻すことをお勧めします。元に戻すことを「元に戻す」ことができるように、新しいコミットを作成したいと思います。
言い換えれば、私がやろうとしていることはこれです
に戻されます
私は何か間違ったことをしていますか?
編集:できる限り差分/マージを実行してから別のコミットを試みましたが、それでもこの新しいエラー メッセージが表示されます:
.gitigore ファイルに頼らずに、ステージングされていないファイルを無視する (削除しない) ように指示するにはどうすればよいですか。率直に言って、emacs 一時ファイルなどであるステージングされていないファイルのほとんどは気にしません。
git - Git Revert、Checkout、Resetの違いは何ですか?
git revert
ファイルとプロジェクトを以前の状態に復元またはロールバックする方法を学習しようとしていますが、、、、checkout
の違いがわかりませんreset
。一見同じ目的のために3つの異なるコマンドがあるのはなぜですか?また、誰かがどちらかを選択する必要があるのはいつですか?
git - git-add -p のように部分的にのみ git-revert する方法は?
以前のコミットでエラーが発生していることに気付きましたが、それには他の点では正しい変更もいくつか含まれていました (当時は、すべてを単一のコミットに入れるのに十分な関連があるように見えました1 )。単純git-revert
にコミットすると、良い変更も元に戻すので、元に戻す部分を選択する方法はありますgit-add -p
か?
1)また、当時はgitを始めたばかりでした...
git - ブランチの作成後に多くのコミットを元に戻す
私はプロジェクトの管理にgitを使用していますが、この種のプログラムの経験はあまりないため、不適切に使用することがよくあります(たとえば、1回のコミットで多くの(無関係な)変更をコミットします)。私はそれらをよりよく使用しようとしています。
ところで、私は自分のプロジェクトの拡張機能を開発し始めたことに気づきました。そのため、git guiから、マスターのコピーである新しいブランチを作成しました。ここで、マスターをプロジェクトに関連しない最後のコミットに戻したいと思います。このコミットが何であるかは知っていますが、すべてのコミットをHEADからこのコミットに戻す方法がわかりません。また、これがブランチに影響を与えるかどうかもわかりません(すべての新しい作業を失うのは本当に苦痛です) ..)
だから、どうすればいいですか?
追伸:通常、私はgit guiを使用しますが、gitbashを使用しても問題はありません。私はwin7を使用しており、EclipseでJavaAndroidプロジェクトを管理しています。