よく、ファイルの一部をコミットし忘れたり、コミットするべきファイルやコメント内容を間違えてしまうことがあるのですが、
Gitは一度コミットするとやり直しできないのでしょうか?やり方があれば教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
1個前に戻し、直前のコミットのみを取り消しindexには残す場合
$git reset --soft HEAD^
1個前に戻し、直前のコミットのみを取り消しindexからも消す、ただしファイル変更は残す
$git reset HEAD^
1個前に戻し、ファイルへの変更自体を消して戻す場合
$git reset --hard HEAD^
なお、コミット前でaddのみ取り消す場合は
$git reset HEAD
となるが、これは未コミットでindexの状態のみ戻すため。
また単にファイルの追加もれのような場合
$git add some.txt $git commit --amend -m "add file"
という方法もあります。
先に追加の変更作業をした上でコミットをやり直します。
コメントのみ直す場合は
$git commit --amend -m "add file"
のみ実行すれば良いです。
投稿2014/07/22 07:19
総合スコア233
0
ベストアンサー
直前にしたコミットをやり直す
この場合は、「git commit --amend」を使用します。
git commit –amend
但し、コミット時のIDは前のモノと異なるものになります。
つまり、「git commit –amend」を使用した場合、元のコミットを上書きするのではなく、元のコミットを無効にし、その上に新たなコミットをするという動作になります。
コミット自体を取り消す
この場合には、「git reset」を使用します。「git reset」には「git reset –soft」と「git reset –hard」の2種類があります。
git reset –soft
「git reset –soft」はワークディレクトリの内容はそのままでコミットの内容だけを取り消します。
git reset –hard
「git reset –hard」はワークディレクトリとコミットの内容を取り消します。
どちらをやりたいかによって、使い分けてください。
投稿2014/07/22 07:13
総合スコア60
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
直前の1コミットだけ修正したいのであれば、commitコマンドを**--amend**オプション付きで実行するといいでしょう。
git add path/to/some/file git commit --amend
のようにすれば、ファイルを追加したコミットで上書きできますし、コミットメッセージだけ修正したいならgit commit --amendだけで可能です。
なお、コミットしたものを何かしらのリポジトリにプッシュしてしまった場合は、コミットを修正してしまうとリポジトリとの状態がずれてしまうので、行うべきではありません。
投稿2014/07/22 05:28
総合スコア145183
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
resetコマンドを使うと良いでしょう
ワークディレクトリの内容はそのままで、コミットだけ取り消す場合は、次のコマンドを打ってみて下さい
git reset --soft HEAD^
投稿2014/07/22 05:04
総合スコア45
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。