Just like above, the bad commit remains there, but it no longer affects the the current master and any future commits on top of it. Reverting a commit means to create a new commit that undoes all changes that were made in the bad commit. Instead of going through all the changes manually, you can simply tell git to revert a commit, which does not even have to be the last one. Sometimes you may want to undo a whole commit with all changes. The bad commit remains there and accessible, but this is usually not a big deal, unless the file contains sensitive information. This is the most natural way to fix an error, always safe and totally non-destructive, and how you should do it 99% of the time. Simply remove or fix the bad file in a new commit and push it to the remote repository. But you should do it rather fast before anyone fetches the bad commits, or you won't be very popular with them for a while )įirst two alternatives that will keep the history intact: Alternative: Correct the mistake in a new commit So you've just pushed your local branch to a remote branch, but then realized that one of the commits should not be there, or that there was some unacceptable typo in it. And now you can merge branch B to branch A.About Git HowTo: revert a commit already pushed to a remote repository May 2010 The above command will revert the E’ commit. To do this, you have to revert the ‘revert commit‘. Because it is been reverted in E’.Īssume after sometimes, you have made some changes to branch B and now you are fine with merging that branch. In the above example, you can’t merge branch B to branch A again. You have to revert the ‘revert commit‘ if you need to merge back the branch. Reverting a merge commit means you are inverting all the changes from the merge branch so that you can’t merge the branch again. So the git history will be like A - B - C - E - F - E' (branch A) This will revert all commits from the merge branch. You have to mention the parent branch number. And if you run git revert E then git will throw a warning. In this above case, E is the merge commit. So when you are reverting a merge commit you have to specify whether you need to revert changes of the parent-A branch or the parent-B branch. The parent-B branch is merged into the parent-A branch. When there is a merge there are two branches included. Reverting a merge commit is somewhat tricky. In this case, the git history is very clean and everyone reading the git history will understand that the particular commit has reverted for some reason. This is one of the advantages of git revert. And changes made by E is no longer present in the working directory. But you can see that in the git history commit E is also present. So you need to pass the commit you need to revert.Īnd after reverting E the commit history will be changed as below A - B - C - D - E - E'Į’ is the reverted commit. Git revert will always take a commit hash. You have decided to go with the git revert. So you have decided to undo the changes that E did. But unlike other undo commands, git revert will introduce a new commit that has the inverted changes.įor example, consider the below git history A - B - C - D - EĪssume, E is the bad commit and you no longer need those changes. The git revert command is used to ‘undo‘ the changes you have made in the past.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |