Git Revert
Git Revert
revert
は、以前のcimmit
をlog
を保持したまま新しいcommit
として追加するときに使用するコマンドです。
ステップ 1: 前のcommit
を見つける:
ステップ 2: それを使って新しいcommit
を作成する:
ファイルを「誤って」削除してしまった場合、新しいcommit
を作成してみましょう。
例
git commit -m "Just a regular update, definitely no accidents here..."
[master 16a6f19] Just a regular update, definitely no accidents here...
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 img_hello_git.jpg
commit
履歴の一部に戻りたい箇所がある。revert
を使ってそれをやってみよう。
Git Revert logからcommitを探す
まず最初に、戻りたいポイントを見つける必要があります。そのためには、log
を調べる必要があります。
非常に長いlogリストを避けるために、--oneline
を使用します。このオプションでは、コミットごとに1行だけが表示されます。
commit hash
の最初の7文字commit message
それでは、revert
したいポイントを探しましょう:
例
git log --oneline
52418f7 (HEAD -> master) Just a regular update, definitely no accidents here...
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from w3schools-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch 'master' of https://github.com/techis-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!
commit
:52418f7 (HEAD -> master) Just a regular update, definitely no accidents here...
、それが最新のcommit
であることがわかります。
Git Revert HEAD
git
revert HEAD
(最新の変更をrevert
してからcommit
する)を使用して最新のcommit
をrevert
します。コミットメッセージエディタをスキップする(デフォルトのrevert
メッセージを取得する)オプション--no-edit
を追加します:
例
git revert HEAD --no-edit
[master e56ba1f] Revert "Just a regular update, definitely no accidents here..."
Date: Thu Apr 22 10:50:13 2021 +0200
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 img_hello_git.jpg
log
を確認してみましょう:
例
git log --oneline
e56ba1f (HEAD -> master) Revert "Just a regular update, definitely no accidents here..."
52418f7 Just a regular update, definitely no accidents here...
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from w3schools-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch 'master' of https://github.com/w3schools-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!
注:以前のcommitに戻すには、次を使用します
次のページで新しいgit revert HEAD~x
(xは、数字であること。1はもう1つ戻り、2はさらに2つ戻ります。など)
commit
を作成せずにリポジトリをcommit内の以前の状態に戻すgit restart
について説明します。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。