eclipse git(egit) 撤销更改
摘自“EGit/User Guide”地址:http://wiki.eclipse.org/EGit/User_Guide#Reverting_Changes
Reverting Changes
Reverting changes in the working tree
Replace with File in Git Index
Changes which are not yet committed and not yet staged can be reverted for a set of selected files. Select the file(s) in the Package Explorer or an analogous view and click Replace With > File in Git Index.
Replace with HEAD
This feature is currently not available on single file level. You can use Reset to with option hard to forcefully reset the entire working tree of your repository back to the state of the HEAD commit (See "Resetting your current HEAD" below). This operation will revert all changes in the working tree and the index. You can't do it on a selected set of files using EGit yet.
Replace with Previous Revision
Changes that are already staged or even committed can be "reverted" by replacing them with a version from the previous commit. Select a single resource in the Package Explorer or an analogous view and click Replace With > Previous Revision. The repository will determine the last commit that modified the selected resource and offer to replace the workspace resource with the contents of this commit.
This is mainly intended for "removing" single files from a commit (when committing the reverted workspace resources, they are effectively removed from the current commit). Even though this also works on folders and projects, the results of replacing a folder or project with a "previous revision" may be unexpected.
Revert using quickdiff
The quickddiff feature can be used to revert individual changes to a file. You can revert by line, block (se range of changes lines) or selection. Select all text and then Revert selection to revert a whole file.
Reverting changes introduced by a specific commit
Changes which are introduced by a given commit can be reverted by an automatically created new commit on top of the currently checked out commit. The commit which is to be reverted does not have to be checked out for that.
Select the commit in the History View, open the context menu and select Revert Commit. This reverts the changes that the selected commit introduces by creating a new commit on top of the currently checked out commit.
Resetting your current HEAD
Git offers the possibility to reset the HEAD of the current branch to any other commit. It optionally resets the index and the working tree to match that commit. Note that this action affects all files and folders in the entire repository.
You have the option to do a hard reset, a mixed reset and a soft reset.
- soft - the HEAD points now to the new commit, the index and the working tree are unchanged
- mixed - the HEAD points now to the new commit, the index is updated, the working tree is unchanged
- hard - the HEAD points now to the new commit, the index and the working tree are updated
Reset to specific branch or tag
Select Team -> Reset... on a project. This opens a dialog where you can select a branch or a tag.
Reset to a specific commit
Select a commit in the History view and open the context menu. Here you find the entries Hard reset, Mixed reset and Soft reset.
Revert all local and staged changes
This can be done as a special case of reset. If you reset to the current HEAD (normally the last commit on your branch) with the option hard you overwrite the working tree and the index with the content of the HEAD. You can do this in three ways:
- Select Team > Reset... on a project. In the dialog select HEAD or your current branch and switch the radio button to hard.
- Right click and select Reset... on any branch or tag in the Repositories view. This opens a dialog which lets you decide on the reset type. Choose hard here.
- Open the context menu on the HEAD commit in the history view and select Hard Reset.