GIT撤销修改 作者:matrix 被围观: 1,925 次 发布时间:2022-04-01 分类:Linux | 3 条评论 » 撤销本地修改 本地代码仅是修改,还未做任何提交(add/commit...#撤销指定文件的修改 $ git checkout ....#撤销所有文件的修改 git checkout会直接还原修改的文件到仓库版本 撤销add $ git reset HEAD file_name_path1 #指定还原文件的add操作 $ git reset...#撤销commit操作(保留修改) $ git reset HEAD^ #回到上一提交版本 #撤销commit操作(放弃修改) $ git reset --hard HEAD^ #手动reset...(注意,这种方式是改变本地代码仓库源码) 撤销push 还原已提交push的修改,本质是新增commit提交 方法1 还原指定版本的修改: $ git revert COMMIT_ID #COMMIT_ID
使用 git checkout 撤销本地修改 即放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态。...命令如下: git checkout ....# 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件 git checkout [filename] # 撤销对指定文件的修改,[filename]为文件名 2....命令如下: git reset --hard [commit-hashcode] # [commit-hashcode]是某个 commit 的哈希值,可以用 git log 查看 因此一般用法是先用...因为新增的文件是还未加到 git 的记录里面的,即属于未被 tracked 的状态,所以撤销修改和回退均对其不影响。我们直接手动删除文件就行了。
那我们就来试一下: git checkout -- readme.txt 看看文件夹中,消失的文件是不是又回来了?再看下 git status,也回到了没有产生修改的状态。... 命令撤销暂存。...git reset HEAD readme.txt 这条命令并不会更改 readme.txt 里的内容,修改仍然存在,但是文件的状态变回到已修改。...再进一步,如果文件修改已经被 commit 了,要如何撤销? 一种情况是,你提交了之后发现还漏了几个地方没有改,或者提交的文件中有些小错误,想要撤销回来重新提交。...那么你可以用 git commit --amend 来重新提交。 做完修改、暂存之后,运行 git commit --amend 会开启文本编辑器让你修改上次的提交注释,或者通过 -m 参数直接指定。
如何在Git里撤销(几乎)任何操作 一、撤销一个已经公开的改变 场景:已经执行了gitpush,将修改发送到了github,需要撤销某一个commit。...如果当前没有提出任何修改,这个操作会把上次的commit消息重写一遍。 三、撤销本地修改 场景:git add后恢复,撤销git add。...方法:git checkout– filename 此种撤销会使任何修改完全消失,所以使用前最好用git diff确认下。...四、重置本地的修改 场景:在本地提交了一些东西(还没有push),希望撤销前面的三次提交。...五、在撤销了本地修改之后再恢复 场景:提交了几个commit后,用git reset –-hard撤销了这些修改,希望还原这些修改。
场景:不小心把一次错误的代码push到远程服务器上的分支上,需要立即删除/撤销这次代码提交。...具体方法,git命令: git log git reset --hard git push origin HEAD --force 【命令详解】 获取commit_id: git...log commit_id形如:126f206185f225879f2723ca421f4dee44ca8fe7 版本回退: git reset --hard 126f206185f225879f2723ca421f4dee44ca8fe7...如果想回退的内容未git push,不需要执行以下步骤!!...推到线上: 已经git push,需要重新push覆盖线上代码,如果回退的内容 git push --force 执行git push --force 强制回退,可能会遇到gitlab设置了master
4个区 5种状态 未修改(Origin) 已修改(Modified) 已暂存(Staged) 已提交(Committed) 已推送(Pushed) 检查修改 已修改,未暂存(检查工作区与暂存区间的差异...) git diff 已暂存,未提交(检查暂存区与本地仓库间的差异) git diff --cached 已提交,未推送(检查本地仓库与远程仓库间的修改) git diff master origin/...master ## origin/master 为远程仓库 撤销修改 已修改,未暂存(撤销工作区的修改) git reset --hard 已暂存,未提交(撤销暂存区的修改) git reset --hard...已提交,未推送(撤销本地仓库的修改) git reset --hard origin/master ## origin/master 为把远程仓库的代码取回并覆盖本地代码 已推送(撤销远程仓库的修改)...git reset --hard HEAD^ git push -f ## 此时本地仓库和远程仓库是一样的 ## 1.第一步先恢复本地仓库 ## 2.第二步再强制同步本地仓库到远程仓库 醉翁猫咪 这世界
1git diff 已暂存,未提交(检查暂存区与本地仓库间的差异) 1git diff --cached 已提交,未推送(检查本地仓库与远程仓库间的修改) 1 2git diff master...origin/master ## origin/master 为远程仓库 撤销修改 已修改,未暂存(撤销工作区的修改) 1git reset --hard 已暂存,未提交(撤销暂存区的修改)...1git reset --hard 已提交,未推送(撤销本地仓库的修改) 1 2git reset --hard origin/master ## origin/master 为把远程仓库的代码取回并覆盖本地代码...已推送(撤销远程仓库的修改) 1 2 3 4 5git reset --hard HEAD^ git push -f ## 此时本地仓库和远程仓库是一样的 ## 1.第一步先恢复本地仓库 ## 2....第二步再强制同步本地仓库到远程仓库
执行完 git add . 才发现没有在对应的分支,如何撤回呢?...可以参考下面的方法: 文件退出暂存区,但是修改保留: git reset --mixed 撤销所有的已经 add 的文件: git reset HEAD ....撤销某个文件或文件夹: git reset HEAD -filename 另外:可以用 git status Git 会告诉你可以通过那个命令来执行操作。...未经允许不得转载:w3h5 » 撤销 git add . 并保留修改的方法
问题描述 当你改乱了工作区某个文件的内容,还没有进行git add .加入缓存区操作的时候。 想直接丢弃工作区的修改时,用命令git checkout -- file进行撤销修改。...首先查看工作区的文件修改情况 使用git status可以查看工作区的文件修改情况,如下: $ git status On branch machine_unit/machine-unit-list Your...add" and/or "git commit -a") 可以看到修改了三个文件。...撤销文件的修改,删除工作区域内容 # 首先撤销第一个文件的修改 $ git checkout -- apps/machine_unit/views.py # 使用git status进行确认 $ git...add" and/or "git commit -a") # 继续撤销下面的两个文件 $ git checkout -- docs/Chapter7/机组列表的基本逻辑.md $ git checkout
最终命令: git checkout HEAD a.txt # 撤销对a.txt文件的修改 git restore --source=HEAD...--staged --worktree a.txt # 也可以使用这个命令 情景模拟: 先使用下面的命令初始化一个测试用的Git仓库: # 初始化一个空的Git仓库 mkdir repo && cd...repo git init # 将a.txt加入到版本控制中 echo A1 > a.txt git add . git commit -m init # 修改a.txt,并把这次修改加入到Git的...# 修改a.txt,不把这次修改加入到Git的staging area中 echo A3 >> a.txt 执行完上面的命令后,看下该Git仓库的当前状态: $ git status On branch..."git restore ..." to discard changes in working directory) modified: a.txt 现在我们想撤销对a.txt文件的修改
最终命令: $ git reset --hard # 撤销所有文件的修改(不算未进入版本控制的文件)$ git clean -fd # 删除所有未进入版本控制的文件 下面用一个例子展示下这两个命令的使用....$ git commit -m f1 # 将f1.txt加入到版本控制中 $ echo b > f1.txt # 修改f1.txt的内容$ touch f2.txt # 创建新文件f2.txt...下面执行上面的命令,看下如果撤销修改的: $ git reset --hardHEAD is now at 5b3c640 f1 $ git status -s??...由上可见,执行完reset命令后,f1.txt文件的修改被撤销,但f2.txt文件还在。...至此,两条命令撤销了对文件的所有修改,Git仓库回到原始状态。
学习目的 当你在工作区修改了,但是你不想要修改的部分时,如何撤销? 当你将工作区的修改添加到暂存区,如何撤销? 当你将修改提交到分支,如何撤销?...测试修改文件后各区状态! 测试git diff,查看工作区和分支文件的修改情况! 再次测试git diff对比工作区和版本库最新版本的区别。 测试撤销修改。...撤销分支修改 如果修改了,并且提交到分支了,想要撤销,参考GIT学习----第三节:版本回退。...小结 工作区撤销修改:git checkout – file. 暂存区撤销修改:(1)git reset HEAD ;(2)git checkout – file....分支撤销修改:git reset --hard HEAD^. 特别注意此处撤销,是没有推送到远程版本库的撤销!没有推送到远程版本库的撤销!没有推送到远程版本库的撤销!重要的事说三遍!
一、撤销内容修改 现在我们修改test.txt内容为: ? 保存。 查看版本库状态 ? git告诉我们test.txt文件被修改了。...1、只做了本地修改 现在我们突然不想做之前的修改了,要怎么做呢? ? 运行了上面的命令以后再去看你的文件,发现修改已经不见了。...2、修改后添加了文件但没有提交 再次修改test.txt文件的内容为最初修改的内容。然后添加(add)。 ? 没错,上面箭头指出的git reset HEAD test.txt就是撤销添加。...撤销添加以后只需要撤销本地修改即可——撤销本地修改就是刚才提到的命令——git checkout -- filename,这里就是: ?...现在我们要撤销修改,只需要运行如下命令 git reset --hard HEAD~ ? 我们发现文件的内容变回了修改之前的内容。
在阅读廖雪峰git教程时,对版本回退和暂存区撤销修改没太看懂,所以自己测试了一下。...版本回退: git reset --hard HEAD 这个命令用于版本回退,就是将已提交的版本覆盖本地工作区的内容。...该操作会清空暂存区的内容 撤销修改: git checkout -- file 撤销对工作区的修改,以最新一次的时间节点(add或者commit)为准,这个命令只改变工作区内容 清空暂存区修改: git...reset HEAD -- file 清空add命令向暂存区提交的修改,该操作之影响暂存区,对工作区无影响。
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt...已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。...reset HEAD ..." to unstage) modified: readme.txt Git同样告诉我们,用命令git reset HEAD 可以把暂存区的修改撤销掉...不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?...场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
记录一下遇到的问题,免得下次到处找 移除文件 git rm --cached 例 git rm --cached ./??....mp4 撤销commit(这里CHEAD是最近一次的commit) git commit --amend -CHEAD
上图显示了 Git四个阶段的提交与撤销命令 正常提交过程有三个步骤四个区和五种状态,下面就分别从这些入手,来看下 Git 撤销更改的方法。...撤销修改 了解清楚如何检查各种修改之后,我们开始尝试各种撤销操作。 已修改,未暂存 如果我们只是在编辑器里修改了文件,但还没有执行 git add ....之后,修改已被撤销,git diff没有任何内容了。 一对反义词 git add . 的反义词是 git checkout .。...做完修改之后,如果你想向前走一步,让修改进入暂存区,就执行 git add . ,如果你想向后退一步,撤销刚才的修改,就执行 git checkout ....如果你想恢复的话,还好,由于你的本地仓库和远程仓库是等价的,你只需要先恢复本地仓库,再强制push到远程仓库就好了: git reset --hard HEAD^ git push -f 总结 以上4种状态的撤销我们都用到了同一个命令
Git 版本管理时,往往需要撤销某些操作。 本文介绍几种最主要的情况,给出详细的解释。更多的命令可以参考《常用 Git 命令清单》一文。 ?...三、替换上一次提交 提交以后,发现提交信息写错了,这时可以使用git commit命令的--amend参数,可以修改上一次的提交信息。...所以,--amend不仅可以修改提交信息,还可以整个把上一次提交替换掉。...四、撤销工作区的文件修改 如果工作区的某个文件被改乱了,但还没有提交,可以用git checkout命令找回本次修改之前的文件。...五、从暂存区撤销文件 如果不小心把一个文件添加到暂存区,可以用下面的命令撤销。 $ git rm --cached [filename] 上面的命令不影响已经提交的内容。
1 本地修改 由于以下修改本身是对版本历史的修改,在需要push到远程仓库时,往往是不成功的,只能强行push,这样会出现的一个问题就是,如果你是push到多人协作的远程仓库中,会对其他人的远程操作构成影响...1.1 修改最近一次的commit 修改提交的描述 git commit --amend 然后会进入一个文本编辑器界面,修改commit的描述内容,即可完成操作。...修改提交的文件 git add # 或者 git rm git commit --amend # 将缓存区的内容做为最近一次提交 1.2 修改任意提交历史位置的commit 可以通过变基命令...--subdirectory-filter trunk HEAD 本地回退 回退操作也是对过往提交的一剂“后悔药”,常用的回退方式有三种:checkout、reset和revert checkout...git revert 远程修改 对远程仓库的版本历史修改,都是在本地修改的基础上进行的:本地修改完成后,再push到远程仓库。
本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令: git checkout . #本地所有修改的。...没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。...git reset --hard HASH #返回到某个节点,不保留修改。 git reset --soft HASH #返回到某个节点。...保留修改 git clean -df #返回到某个节点 git clean 参数 -n 显示 将要 删除的 文件 和 目录 -f 删除 文件 -df 删除 文件 和 目录 也可以使用...: git checkout . && git clean -xdf
领取专属 10元无门槛券
手把手带您无忧上云