`

Git 撤销修改

 
阅读更多

 

 

 

增补提交

  git commit –C HEAD –a --amend

 

  -C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。

 

  如果参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。

 

  增补提交只能针对最后一个提交,如果想更正好几个提交之前的某个错误,则须使用git revert这个命令。

 

 

 

反转提交

  反转已经提交的改动,使用git revert命令,此命令通过在版本库中创建一个“反向的”新提交来抵消原来提交的改动。

 

  通常Git会立即提交反转结果,但是也可以通过参数-n告诉Git先不要提交,这用于反转多个提交非常有用,运行多个git revert –n命令,Git会暂存所有的变更,然后做一次性提交。

 

  做反转操作的时候必须提供提交名称,反转总是按照从新到旧点的倒序来操作的,即最后的提交最先反转,这样可以避免一些不必要的冲突。

 

 

 

复位

  命令git reset可以在复位版本库后,暂存工作目录树中因复位产生的与版本库的差异,以便提交。

 

  这对于在之前的提交中发现错误并需要更改时非常有用。

 

  这是通过--soft选项实现的,它使得Git暂存所有的因复位带来的差异,但不提交它。之后,用户可以修改这些内容再提交,或者干脆扔掉这些内容。

 

  选项--hard要小心使用,该选项会从版本库和工作目录树中同时删除提交,--hard就好像版本库中的删除键,并且不可恢复。

 

  git reset是以提交名称作为参数的,默认值是HEAD,可以用^和~作为提交名称的修饰符来指定某个版本。

 

  HEAD^是指把版本库复位到当前HEAD之前的那个节点上,把HEAD这个版本的修改扔到工作目录树中,

 

  540ecb7~3是指要复位到540ecb7之前的三个节点上,即把该提交和之前的两个提交(共三个提交)扔到工作目录树中。

 

 

 

  git reset --hard HEAD^ 强制复位前一个提交。

 

  git reset HEAD可以用来清除已经add到缓存区但是不想进一步提交的内容。

 

  另一种方式是用git rm --cached,选项--cached表明是清除缓存区,然后不动工作目录树。

 

  注意git checkout filename将会删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的。

分享到:
评论

相关推荐

    Git撤销使用方法,详细教学

    本文将详细介绍如何在Git中进行撤销操作,以便恢复到先前的状态或者取消不希望的更改。 1. **撤销对已经暂存区的文件的修改** 当你使用`git add`命令将文件添加到暂存区后,如果想要撤销对文件的暂存状态,可以...

    git修改和删除

    - 使用`git checkout -- <file>`命令来撤销工作区中的修改。 - 如果文件已经被提交到了仓库,可以考虑使用`git revert`或`git filter-branch`等高级命令来撤回已提交的修改。 - 在紧急情况下,还可以考虑使用`git ...

    学习git和gitbash使用的一些详细操作

    - 当文件被添加到暂存区后,想要撤销可以使用`git reset HEAD <file>`将文件从暂存区中移出,然后使用`git checkout -- <file>`撤销修改。 Git还有一些高级功能,比如: - 使用标签(tag)来标记重要的提交点,`git...

    完全学会GIT+GITHUB+GIT+SERVER的24堂课

    Git的`git revert`和`git reset`命令可撤销更改,但前者创建新的提交,后者直接修改历史。遇到冲突时,开发者需要手动编辑冲突文件,然后使用`git add`和`git commit`完成解决。 **8. Git钩子** Git钩子是一系列...

    git 教材 progit

    6. **撤销操作**:Git提供了一些强大的撤销操作,如`git reset`和`git revert`,可以在不影响历史记录的情况下回退到之前的版本。 7. **标签管理**:`git tag`命令用于标记特定的提交,通常用于发布版本或者重要...

    Git的客户端+服务端Gitblit+Git clone

    `git reset`可以撤销提交,`git rebase`可以将一个分支的变更应用到另一个分支之上,以保持线性的提交历史。 总的来说,Git和Gitblit结合使用,为团队协作提供了高效、安全的代码管理方案。掌握Git的客户端和服务端...

    Git工具安装包,Git工具安装包

    6. 撤销操作:如果误操作,Git提供了强大的撤销功能,如`git reset`和`git revert`,可以在不影响历史记录的情况下恢复到之前的状态。 7. 快照式模型:Git以文件快照的形式存储项目状态,每次提交都是对整个项目...

    git 2.20 x64

    4. **撤销操作**:通过`git reset`和`git revert`,可以撤销错误的提交,保护代码的完整性。 5. **合并冲突解决**:当多个开发者修改同一部分代码时,Git会提示合并冲突,用户可以手动解决这些冲突后再提交。 Git ...

    git的详细使用教程.pdf

    - 撤销版本库修改(已经`commit`, 尚未推送到远程):使用`git revert`命令或`git reset`命令。 3. **远程仓库操作**: - `git clone [url]`:从远程仓库克隆一个项目到本地。 - `git remote -v`:查看远程仓库...

    Git-2.27.zip

    4. 撤销操作:如果误操作,Git提供了强大的撤销机制,可以撤销提交、重置分支等。 5. 差异分析:通过`git diff`命令查看文件或代码的差异。 6. 合并冲突:当多人同时修改同一部分代码时,Git会提示合并冲突,需要...

    Git详解_Git详解

    - **撤销修改**:`git reset`和`git checkout`可以用来撤销未提交或已提交的改动。 - **远程仓库**:通过`git remote add`添加远程仓库,`git push`将本地更改推送到远程,`git pull`则用来获取并合并远程仓库的...

    git零基础实战

    - 使用`git reset`撤销最近一次提交。 - 使用`git rebase`或`git merge`合并分支时可以调整提交历史。 - **分支管理** - 创建新分支:`git branch <branch-name>`。 - 切换分支:`git checkout <branch-name>`...

    git magic 开始git吧

    - **撤销与重做**:掌握撤销错误更改及恢复工作的方法,保持代码库的清洁和有序。 - **变更日志生成**:学会创建清晰的变更日志,记录每次提交的信息,便于追踪修改历史。 - **下载与更新**:掌握从远程仓库下载...

    git电子书(Git权威指南&Pro Git简体中文版)

    - **撤销更改**:`git reset`和`git checkout`可以撤销工作目录或暂存区的更改。 5. **分支管理** - **创建分支**:`git branch`创建新的开发分支。 - **切换分支**:`git checkout`在分支间切换。 - **合并...

    git32位64位下载,git-2.9.0

    - 回退与重置:`git reset`和`git revert`可以用来撤销更改,但它们有不同效果,需谨慎使用。 - 标签管理:`git tag`用于添加、查看和删除标签,方便标记重要版本。 - 合并冲突:当多人修改同一部分代码时,可能会...

    linux的git压缩包

    7. **撤销更改**:如果想要回退到之前的版本,可以使用`git reset`和`git checkout`命令,但需要注意它们对提交历史的影响。 8. **协作流程**:Git常采用的协作模式有Forking Workflow、Feature Branch Workflow、...

    git 安装程序包 git 安装程序包

    - **重置和变基**:`git reset`和`git rebase`用于撤销或调整提交历史,需谨慎使用。 - **子模块**:对于大型项目,可以使用Git子模块来管理依赖的外部项目。 通过学习和实践这些Git操作,你可以有效地管理个人或...

    git 操作指导 git的常用命令

    - **撤销最近一次提交**:使用 `git reset --soft HEAD~1` 可以撤销最近一次提交但保留更改。 #### 总结 Git 不仅是一款强大的版本控制工具,而且具有高度的灵活性和可扩展性。通过掌握 Git 的基本命令和最佳实践...

    Git教程 从入门到精通

    - **撤销已暂存的修改**:如果文件已经被暂存,可以先用`git reset HEAD <file>`取消暂存,然后再用`git checkout -- <file>`撤销修改。 #### 八、删除文件 - **删除文件**:使用`git rm <file>`删除文件。 - **...

Global site tag (gtag.js) - Google Analytics