![]() ![]() The effect is most easily seen by looking at Figure 1 again. Where the reset command moves the branch pointer back in the chain (typically) to "undo" changes, the revert command adds a new commit at the end of the chain to "cancel" changes. The net effect of the git revert command is similar to reset, but its approach is different. Before you use the hard option, be sure that's what you really want to do, since the command overwrites any uncommitted changes. ![]() In effect, it resets (clears out) the staging area and overwrites content in the working directory with the content from the commit you reset to. This overwrites any local changes you haven't committed. Using these options can be useful in targeted circumstances such as git reset -hard . These options include: hard to reset the commit being pointed to in the repository, populate the working directory with the contents of the commit, and reset the staging area soft to only reset the pointer in the repository and mixed (the default) to reset the pointer and the staging area. And now you can merge branch B to branch A.The git reset command also includes options to update the other parts of your local environment with the contents of the commit where you end up. 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 |