質問

って改訂前のコミットするのコミットして別に保歴史の変動によって書かれたものかを特定のファイルです。

があるので、元に戻すことを前回のコミット?い場合、そのようなもの git reset --hard HEAD^, 最初のコミットも緩和。

してくれてありがとうございますなに押し出されて他のリモートディレクトリ)

役に立ちましたか?

解決

あなたがする必要がある何がしかしHEADの以前のバージョンと親を持つ、新しいコミット現在HEADと同じ内容でコミットを作成することです。次のコミットが異なる現在のブランチヘッドが今ある場所からコミットの上に起こるようにgit reset --softは、分岐ポインタを移動します。

# Move the current head so that it's pointing at the old commit
# Leave the index intact for redoing the commit.
# HEAD@{1} gives you "the commit that HEAD pointed at before 
# it was moved to where it currently points at". Note that this is
# different from HEAD~1, which gives you "the commit that is the
# parent node of the commit that HEAD is currently pointing to."
git reset --soft HEAD@{1}

# commit the current tree using the commit details of the previous
# HEAD commit. (Note that HEAD@{1} is pointing somewhere different from the
# previous command. It's now pointing at the erroneously amended commit.)
git commit -C HEAD@{1}

他のヒント

のREF-ログインします。

git branch fixing-things HEAD@{1}
git reset fixing-things

あなたは、あなたの作業コピー内のすべての以前に修正された変更を持っている必要がありますし、もう一度コミットすることができます。

前のインデックスの完全なリストを表示するタイプのgit reflog

だ改正犯:

git log --reflog

注意:を加えても良いでしょう --patch 体を見ることの犯機能再構成に成功しました。.と同じ git reflog.

そしてリセットヘッドへの前回のcommitを行った微細:

git reset SHA1 --hard

注意: 交換 SHA1おうコミットのハッシュ.また、このコマンド 他の未確定の変更ださを隠しています。または、 使用 --soft 代わりに残る最新の変更 そしてコミットします。

そして桜のその他のコミットする必要のあるので

git cherry-pick SHA1

できることが分割を から マニュアル

  • 開始ィrebaseとgit rebase-私^には、コミットのコミット分割を行う.実際には、あらゆるコミットの範囲などを含んでいる。
  • マークのコミット分割を行うとのアクション"編集".
  • で編集するコミット実行gitリセットの頭の^.その効果は、頭rewoundによる一つの指標おります。しかし、ツリーのご滞在も同じです。
  • の変化を指標としてのコミットする利用できgit add(おそら対話的に)またはgit-guiは、いずれか(または両方)になる。
  • コミットの現在のインデックスは、何らかのコミットメッセージに適します。
  • 繰り返し、最後の段階でワーキングツリーです。
  • 続きをrebaseとgit rebase--。

たぶん前に改正し、後に修正コミット2を取得するためにgit reflogを使用することができます。

次に、前改正と後の修正との差分を取得するためにgit diff before_commit_id after_commit_id > d.diffを使用します。

の前にコミットするためにバックアップする次利用git checkout before_commit_id

そして、あなたがした本当の変更を適用するために最終使用git apply d.diffます。

それは私の問題を解決します。

おそらく価値はあなたがコミットメッセージを使用して、エディタに残っている場合、あなたがコミットメッセージを削除することができ、それがgit commit --amendコマンドを中止しますことを指摘しています。

できない以下の取り消しお git commit —amend

  1. git reset --soft HEAD^
  2. git checkout files_from_old_commit_on_branch
  3. git pull origin your_branch_name

====================================

現在ご変更したりしていけるようになっています。していただく必要がありのまま元に戻すために git commit —amend

できませ git push origin <your_branch_name>, を押します。

リモートへのコミットをプッシュしている場合は、その後、誤っている、これはあなたの問題を解決しますコミットの変更を修正しました。コミットする前にSHAを見つけることgit logを発行します。 (これはリモート名前の起源であると想定します)。今ではSHAを使用してこれらのコマンドを発行します。

git reset --soft <SHA BEFORE THE AMMEND>
#you now see all the changes in the commit and the amend undone

#save ALL the changes to the stash
git stash

git pull origin <your-branch> --ff-only
#if you issue git log you can see that you have the commit you didn't want to amend

git stash pop
#git status reveals only the changes you incorrectly amended

#now you can create your new unamended commit

ほとんど9年にこのがんはこの変化挙を成し遂げと同じもふもふをご堪能ください(このような組み合わせがこれらに類似するトップ回答(https://stackoverflow.com/a/1459264/4642530).

検索全て一戸建てのヘッドに支店

git reflog show origin/BRANCH_NAME --date=relative

データベース検索システムのSHA1ハッシュ

リセット旧SHA1

git reset --hard SHA1

そして最後までしっかりと押し込みまします。

git push origin BRANCH_NAME

行われます。

この戻りますの古いコミットします。

その日を含めて事前に上書き一戸建てのコミットヘッド)

  1. 精算一時的な支との前回のコミット

    git branch temp HEAD@{1}

  2. 前回のコミットリセット

    git reset temp

  3. 現在、すべてのファイルをお持など前回のコミットするチェック状態のすべてのファイルです。

    git status

  4. リセット"をコミットからファイルgitます。

    git reset myfile1.js (など)

  5. 隔このコミット

    git commit -C HEAD@{1}

  6. 追加とコミットのファイルを新しいコミットする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top