git revertは新しいコミットを行います
git revert
単に、既存のコミットと反対の新しいコミットを作成します。
元に戻されたコミットが存在しなかったかのように、ファイルを同じ状態のままにします。たとえば、次の簡単な例を考えてみます。
$ cd /tmp/example
$ git init
Initialized empty Git repository in /tmp/example/.git/
$ echo "Initial text" > README.md
$ git add README.md
$ git commit -m "initial commit"
[master (root-commit) 3f7522e] initial commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ echo "bad update" > README.md
$ git commit -am "bad update"
[master a1b9870] bad update
1 file changed, 1 insertion(+), 1 deletion(-)
この例では、コミット履歴には2つのコミットがあり、最後のコミットは誤りです。git revertの使用:
$ git revert HEAD
[master 1db4eeb] Revert "bad update"
1 file changed, 1 insertion(+), 1 deletion(-)
ログには3つのコミットがあります。
$ git log --oneline
1db4eeb Revert "bad update"
a1b9870 bad update
3f7522e initial commit
そのため、何が起こったかの一貫した履歴がありますが、ファイルは、不正な更新が発生しなかったかのようです。
cat README.md
Initial text
履歴のどこで元に戻すかは関係ありません(上記の例では、最後のコミットが元に戻されます。どのコミットでも元に戻すことができます)。
閉会の質問
あなたは後に何か他のことをしなければなりませんか?
A git revert
は単なる別のコミットです。たとえば、リモートにプッシュして、他のユーザーが変更をプル/フェッチ/マージして、完了します。
行った変更をコミットする必要がありますか、それともリポジトリに直接コミットしますか?
git revert
はコミットです-単一のコミットを元に戻すことがあなたがやりたいことであると想定して、追加の手順はありません。
明らかに、もう一度プッシュして、おそらくチームに発表する必要があります。
確かに-リモートが不安定な状態の場合-修正(元に戻すコミット)を取得するためにプルする必要があるチームの他のメンバーと通信することは、正しいことです:)。