[解決済み] 最後にpushされなかったgitコミットを、変更を失うことなくアンコミットする方法
2022-02-09 09:17:06
質問
コミットをリバートして、ローカルコピーの 保つ そのコミットで行われた変更は、私の作業コピーでは非コミットの変更になりますか?コミットをロールバックすると、直前のコミットに戻ります。変更を保持したいのですが、間違ったブランチにコミットしてしまいました。
これはプッシュされておらず、コミットされているだけです。
解決方法は?
例えば、いろいろな方法があります。
がある場合 ない はまだコミットを公にプッシュしていません。
git reset HEAD~1 --soft
これで、コミットによる変更は作業ディレクトリに保存され、一方最後のコミットは現在のブランチから削除されます。参照 git reset man
万が一 した を公開('master' というブランチに)してください。
git checkout -b MyCommit //save your commit in a separate branch just in case (so you don't have to dig it from reflog in case you screw up :) )
普通にコミットを戻してプッシュ
git checkout master
git revert a8172f36 #hash of the commit you want to destroy
# this introduces a new commit (say, it's hash is 86b48ba) which removes changes, introduced in the commit in question (but those changes are still visible in the history)
git push origin master
この変更を作業コピーのローカル変更として扱いたい場合 ("そのコミットでの変更をローカルコピーに残す") は、リバートコミットに対して
--no-commit
オプションで指定します。
git revert --no-commit 86b48ba (hash of the revert commit).
小さな例を工作してみました。 https://github.com/Isantipov/git-revert/commits/master
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] ファイルをリセットしたり、特定のリビジョンに戻したりするにはどうすればよいですか?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】複数のgitコミットを元に戻すには?
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] GitHubに空のブランチを作成する
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。
-
[解決済み] わかりやすく言うと、「git reset」は何をするものなのでしょうか?
-
[解決済み】異なるユーザー名でGitHubにプッシュする方法は?