Git回滚文件常用命令汇总

这篇具有很好参考价值的文章主要介绍了Git回滚文件常用命令汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 修改完,还未执行git add

缓存区没有任何文件时,使用

git checkout . 

将暂存区的文件覆盖工作区

执行完 git add . 之后,再执行该命令是无效的,git checkout .和git add .是一对反义词

git checkout(覆盖)

1、只放弃工作区的改动,index 保持不变,其实就是从当前 index 恢复 工作区:

放弃工作区中全部的修改

git checkout .

放弃工作区中某个文件的修改:

git checkout -- filename

2、强制放弃 index 和 工作区 的改动:

git checkout -f

这是不可逆的操作,会直接覆盖,但是还是很有用的,有时候想放弃这些改动,使用svn的时候可以直接把文件删掉再update,但是使用git就不能这么操作,使用 git checkout 可以满足这一点。

git diff(查看差异)

git diff 命令,默认查看的就是 工作区 和 暂存区之间文件的差异

2.使用git add 提交到暂存区,还未commit之前

撤销单个文件:

git reset HEAD file(文件名)

撤销多个文件:

git reset HEAD

3.已经git commit,还未git push

git reset --hard origin/master

清空暂存区,执行此操作后要重新git add 后重新git commit

撤销commit一般用git reset ,语法如下:

git reset [ --mixed | --soft | --hard] [<commit ID>]

1.使用参数--mixed(默认参数),如git reset --mixed <commit ID>或git reset <commit ID>

撤销git commit,撤销git add,保留编辑器改动代码

2.使用参数--soft,如git reset --soft<commit ID>

撤销git commit,不撤销git add,保留编辑器改动代码

3.使用参数--hard,如git reset --hard <commit ID>——此方式非常暴力,全部撤销,慎用

撤销git commit,撤销git add,删除编辑器改动代码

4.已经git push

对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令

revert 用于反转提交,执行evert命令时要求工作树必须是干净的.

git revert

git revert用一个新提交来消除一个历史提交所做的任何修改.

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)

revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.

git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61

通常,前几位即可

git revert c011eb3

git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit

看似达到的效果是一样的,其实完全不同.

第一:

上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.

第二:

如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.

第三:

reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

最后

git push 发生冲突时,我们可以使用

git stash

保存自己修改的代码,然后使用

git pull

拉取最新的代码,接着

git stash pop

把自己前面保存的代码拿回来文章来源地址https://www.toymoban.com/news/detail-589922.html

到了这里,关于Git回滚文件常用命令汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git常用命令汇总

    命令 作用 注意 git -v 查看 git 版本 git init 初始化 git 仓库 git add 文件标识 暂存某个文件 文件标识以终端为起始的相对路径 git add . 暂存所有文件 git commit -m \\\'说明注释\\\' 提交产生版本记录 每次提交,把暂存区内容快照一份 git status 查看文件状态 - 详细信息 git status -s 查看文件

    2024年01月24日
    浏览(36)
  • git常用命令(git github ssh)

    被” “和\\\"[ ]“包含起来的内容表示用户自己选定的参数。但” “是要求用户必须输入的,而”[ ]\\\"表示用户可以根据自己的需要选择输入。 比如git reset的语法是这样的: 其中commitid指的是commit id,可以理解为每一提交到本地仓库之后该仓库状态的ID,利用这个ID我们可以快速

    2024年02月03日
    浏览(53)
  • 【运维知识高级篇】一篇文章带你搞懂Git!(Git安装+全局配置+Git初始化代码仓库+Git四大区域+Git四种状态+Git常用命令+Git分支+Git测试代码回滚)

    版本流程控制系统(version control system)是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统,它会记录文件的所有历史变化,我们可以随时恢复到任何一个历史状态,同时支持多人协作开发。 目录 常见的版本管理工具 Git安装与全局配置 Git初始化

    2024年02月02日
    浏览(63)
  • 常用的git diff命令用法汇总和示例

    Git的 diff 命令是一种强大的工具,用于比较Git仓库中文件的更改。以下是一些常用的 git diff 命令用法和示例: 1. 查看工作目录和暂存区的差异 这个命令显示自上次 git add 以来,在工作目录中对文件所做的未暂存的更改。 2. 查看暂存区和最后一次提交的差异 或者 这些命令显

    2024年01月19日
    浏览(35)
  • github使用笔记及git协作常用命令

    1.Github有一个主库 ,每个人自己也有一个库,称为分支。 2.Github的协作流程 :先从主库fork出自己的分支, 然后进行代码的修改等操作, 操作完之后从本地库上推到自己的服务器分支,然后 服务器分支Pull Request到 主库。 3.本地仓库由git维护的三棵“树\\\"组成 :第1个是工作目

    2024年02月14日
    浏览(47)
  • Git常用命令,配合GitHub的使用技巧

    1、git init:初始化仓库 2、git status:查看仓库的状态 工作树和仓库在被操作过程中,状态会不断发生变化。在Git操作过程中常用git status 来查看当前状态,是基本的操作。 3、git add:向暂存区中添加文件 如果只是利用Git仓库创建了文件,那么文件并不会被记入Git 仓库的版本

    2024年01月23日
    浏览(50)
  • 【Github】git clone命令下载文件中途停止

    使用git clone命令下载github上的源代码时,有时文件下载到一定百分比时就停止不动, 这是因为我们所下载的文件很大,超过了git预先分配的Postbuffer容量,所以一直卡在那里。可以使用以下命令查看当前Postbuffer的数值: 我们可以根据所下载文件的容量来设置Postbuffer的数值。

    2024年02月04日
    浏览(55)
  • git命令进行代码回滚

    1:回滚到你的目标提交记录 2:在你的项目路径下打开git命令面板 git安装路径,安装过的无需安装 : 下载地址 使用命令:git reset –hard [commit] 该命令将丢弃所有的历史记录,并回滚到指定的提交。 3:gitlab上已经看不到你的测试记录了,只能看到目标提交记录,说明目标提交记录之后

    2024年02月15日
    浏览(43)
  • git单个文件回滚

    记一次,让单个文件回滚到初始版本 现在 a b c d 四个文件 提交过两次 我现在提交了很多代码,但是我想把d2 变成d ,应该怎么变 首先 –soft的意思是说,保留本地的代码,也就是 a2 b2 c2 d2 ,但是把所有的commit的提交记录都取消掉了。 也就是我现在的动作相当于是 a - 当前 b -

    2024年02月05日
    浏览(40)
  • git 回滚某个文件

    git checkout – 可以丢弃工作区的修改,但是不能丢弃暂存区的修改。注意要加–,否则就变成“切换分支”命令。 git reset HEAD 可以丢弃暂存区的修改(unstage),但是不会自动同步撤销工作区的修改。如果希望彻底丢弃暂存区以及工作区修改,可以加\\\"–hard\\\"参数(就是版本回退

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包