Git Revert
Git Revert
revert
je příkaz, který používáme, když chceme převzít předchozí commit
a přidat jej jako nový commit
, přičemž log
zůstane zachován.
Krok 1: Najděte předchozí commit
:
Krok 2: Použijte jej k vytvoření nového commit
:
Udělejme nový commit
, kde jsme "omylem" smazali soubor:
Příklad
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
Nyní máme část naší commit
historie, ke které se chceme vrátit. Zkusme to udělat s revert
.
Git Revert Find Commit in Log
Nejprve musíme najít bod, ke kterému se chceme vrátit. K tomu musíme projít
log
.
Abychom se vyhnuli velmi dlouhému seznamu protokolů, použijeme
--oneline
možnost, která zobrazuje pouze jeden řádek na potvrzení:
- Prvních sedm postav
commit hash
- a
commit message
Pojďme tedy najít bod, který chceme revert
:
Příklad
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/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!
Chceme se vrátit k předchozímu commit
:
52418f7 (HEAD -> master) Just a regular update, definitely no accidents here...
a vidíme, že je nejnovější commit
.
Git Revert HEAD
We revert the latest commit
using git
revert HEAD
(revert
the latest change, and then
commit
), adding the option
--no-edit
to skip the commit message editor (getting the default
revert
message):
Example
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
Now let's check the log
again:
Example
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!
Note: To revert to earlier commits, use
git revert HEAD~x
(x
being a number. 1 going back one more, 2 going back two more, etc.)
On the next page, we'll go over git reset
, which brings the repository back to an earlier state in the commits without
making a new commit
.