在开发过程中,git的版本管理越来越普及。在版本管理中,最常用和最重要的是重置提交的版本,恢复后悔做了的事。大家都知道用reset命令。但是有几种形态需要整理共享一下,也方便我自己查阅。...二、reset soft(更改HEAD)(恢复git commit的操作) 软重置。...2.hard(更改三者) --hard参数将会将会重置(HEAD,INDEX(STAGING),WORKING COPY),强制一致。...3.mixed(default)(恢复git add的操作,包含恢复git commit的操作) --mixed是reset的默认参数,也就是当你不指定任何参数时的参数。...1、soft: 重置git commit 2、mixed: 重置git commit 和 git add 3、hard: 重置git commit 和 git add 和工作副本的修改。
暂存区:你使用git add添加之后的文件所在位置 git reset git reset commitId --soft:回退当前代码仓库到指定提交commitId,当前HEAD和commitId之间的修改会保留...就是保留了add的状态 git reset commitId --hard:回退当前代码仓库的代码到指定commitId,这之间的代码会丢失。...会建立一个新的commit,这个commit的内容就是指定commitId的反向,也就是提交一个新的commit把commitId对应的修改内容还原。...git reset --hard HEAD^ 本地修改,执行了git add和git commit,并且执行了git push,但是此时其他人还未提交代码到同一分支。想撤回。...# 根据你是否想要保留修改代码,自由选择 --soft --mixed --hard git reset --soft HEAD^; # 执行要做的修改等操作,重新提交,或者丢弃代码 git push
先上图 git reset 推荐一篇博客:git reset简介 git reset filename 撤销文件的暂存 git reset filename 撤销暂存区所有的文件暂存 git reset...下文中的 commitId 指任何可以指代一次提交的标识,如 id ; branch name ; tag name ; HEAD^ ; git reset —soft git reset --soft...git reset —mixed git reset --mixed commitid 撤销到 commitId 标识的提交完成之后状态(commitId的那次提交不会被撤销), 并将那次提交之后的修改...git reset —hard git reset --hard commitid 撤销到 commitId 标识的提交完成之后状态(commitId的那次提交不会被撤销), 并将那次提交之后的修改,都丢弃...如在dev分支执行: git reset --hard origin/dev ,达到的效果就是让dev分支与 origin/dev 分支(本地远程仓库中的dev分支)完全一致。
commitId> 版本回退/前进,git reset用于撤销未被提交到远端的改动,默认参数为--mixed,会撤销暂存区而保留当前工作空间的修改。...也可以通过git reset --hard HEAD^回退到上次修改,使用--hard参数会同时更新暂存区和本地工作空间的文件,所以使用前最好先保存commitId>。...如果不仅git add了,同时 git commit了,使用上文提到的 git reset --hard commitId> 进行版本回退/前进 git checkout其实是用版本库里的版本替换工作区的版本...: git reset --hard origin/ git 远程操作 git remote add origin git@github.com:ShyZhen/gitTest.git.../path/file 可以忽略这个文件的修改,从而不用提交到库里面。
解决方案: 使用命令: git reset --soft HEAD^ 这样就成功撤销了commit,如果想要连着add也撤销的话,--soft改为--hard(删除工作空间的改动代码)。...或者 git reset HEAD a.txt 这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化 3、git commit到本地分支...、但没有git push到远程 git log # 得到你需要回退一次提交的commit id git reset --hard # 回到其中你想要的某个版 或者 git reset...--hard HEAD^ # 回到最新的一次提交 或者 git reset HEAD^ # 此时代码保留,回到 git add 之前 4、git push把修改提交到远程仓库 1)通过git reset...情况二:删除最后一次远程提交 方式一:使用revert git revert HEAD git push origin master 方式二:使用reset git reset --hard HEAD
commit) git git reset [--hard|soft|mixed|merge|keep] [commit|HEAD] 一般使用 --soft git reset [--hard...> # 回滚到指定commitID git checkout commitID> 情况三:删除最后一次远程提交 git revert HEAD || git reset --hard...git reset --hard HEAD^ git push origin master -f 二者区别: revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在...情况四:回滚某次提交 (git commit in history) git revert commitID> # 找到要回滚的commitID git log git revert commitID...同样的,revert 会出现一次新的 commit 提交记录,这里也可以使用 reset 删除 删除某次提交 (git commit in history) git rebase -i commitID
$ git reset --hard HEAD^ 回退到上个版本 $ git reset --hard commit_id 退到/进到 指定commit_id $ git push...--force 强制推送到远程,千万不要拉取,否则又会把最新提交拉下来 git reset --hard在master回退到之前的某个版本之后,后面的提交记录则都消失了,是完全回退到当时提交的模样。...解决办法如下: gitlab如何支持强制push 然后强制push成功: ? 此时代码已变为第二次提交时的两个文件了: ? ? 提交记录也恢复到了前两次提交。 ...3、 git reset --hard 第二次提交的commitid ?...========》具体这篇文章解释的比较清楚 git revert git revert 第三次提交的commitid git push ? ?
user.name '用户名xx' $ git config --global user.email 'xxxxx@xx.xx' 检验用户/邮箱是否创建成功: $ git config --global...dirname/newfilename 查看某文件前后变化 $ git log --pretty=oneline filename $ git show commitId 查看文件具体修改的内容:...回退指定文件还未提交的修改: $ git checkout -- filename 不再追踪时如何实现撤销追踪操作(从暂存区 回到到本地仓库) $ git reset HEAD filename 版本回退...回到到上一个版本, 一个^代表回退一个版本,二个^^就是回退两个版本,以此类推: $ git reset --hard HEAD^ 回退到指定版本 $ git reset --hard commitId...commit上: $ git tag v1.0 $ git tag //查看标签是否创建成功 创建标签到指定commit上: $ git tag v0.5 commitId 删除标签 $ git tag
git reset 命令 我们知道git reset可以将当前的内容回滚到指定的某次提交,分为两个模式: #将内容回滚到commitid这次提交,并删除所有‘commitid’之后的提交历史内容 git...reset --hard commitid #将内容回滚到commitid这次提交,并保留所有‘commitid’之后的内容 git reset --soft commitid 由于提交大文件之后...通过git reset --soft命令,将当前提交的内容恢复到这个两个大文件提交之前,然后再次commit,再次push到远程仓库,结局可以想而知,这样就想删除文件?no way!...git reset --soft命令一样是无法将提交记录从仓库中抹掉的,虽然通过reset之后,大文件的提交记录在git log中已经查找不到,但实际上,这个记录并不会真正的从仓库中删除,只要能找到commit...执行以后命令以后,你会发现本地目录中的.git文件并不会马上就变小,而是与原来是一样的! 不是说好了,可以永久删除记录的吗?摔!不是说好了,不能再通过commit id找回原来的大文件了吗?摔!
reset HEAD~2 --hard // 回撤2步git reset --files // 从仓库回撤到暂存区git reset HEAD // 回撤暂存区内容到工作目录git reset HEAD...--soft 回撤提交到暂存区git reset HEAD --hard // 回撤提交 放弃变更 (慎用)git reset HEAD^ // 回撤仓库最后一次提交git reset --soft...并没有执行git push到远程仓库的内容 回撤并且不保存// 注意 在window电脑端 可能会出现执行git reset --hard HEAD^命令时 提示More?...所以针对windows 我们回撤内容需要键入git reset --hard HEAD^^才可以 如果我们git commit提交2次 想把2次都回撤到工作区保存 可以使用git reset --soft...HEAD~2git reset --hard commitid // 回撤到该次提交id的位置 回撤后本地暂存区可能有内容 本地仓库有要同步的内容 此时 丢弃掉暂存区的内容 并且强制将本地的内容推送至远程仓库
reset --hard commit_id来回退到相应的版本。...除此之卡,在Git中,使用HEAD来代表当前版本,如需回退到前一个版本,可以使用命令git reset --hard HEAD^,前两个版本则用HEAD~2表示,以此类推。...查看版本 当前版本id为ec88247…比如,现要回退到commit_id为47384c8…的版本,可以使用如下命令: $ git reset --hard 47384c8 HEAD...为ec88247…的记录已经不见了,如果要回退到这个版本,又忘记了与之对应的commitid该怎么办呢。...可看到,回退到commitid为47384c8…的上一个版本的commitid为ec88247…,所以,使用如下命令即可回到一开始回退前的版本: $ git reset --hard ec88247
-m "本次提交注释信息" git push git diff: 查看提交了些什么 git log: 查看提交历史 git pull: 拉下来最新的代码 git rm filename: 删除文件 git...master: 切换到master分支 git merge develop: 将develop分支合并到当前分支 git reset --hard HEAD^: 版本回退 git reset --hard...commitid: 回退到commitid这个版本,使用git log查看commitid git checkout 版本号:切换到版本号对应的代码版本 git checkout -- finename...stash pop: 恢复工作区 git rebase -i commitid: 将commitid后面的所有commit合并成一个commit提交 git rebase master: 将master...git push --force: 强制提交 git cherry-pick commitid: 将别的分支的commitid对应的提交剪切到当前分支。
- `git log`: 查看提交历史 - `git pull`: 拉下来最新的代码 - `git rm filename`: 删除文件 - `git show`: 查看改变 -...`git checkout master`: 切换到master分支 - `git merge develop`: 将develop分支合并到当前分支 - `git reset --hard HEAD...^`: 版本回退 - `git reset --hard commitid`: 回退到commitid这个版本,使用`git log`查看commitid - `git checkout 版本号...- `git stash list`: 查看缓存中的工作区内容 - `git stash pop`: 恢复工作区 - `git rebase -i commitid`: 将commitid...- `git push --force`: 强制提交 - `git cherry-pick commitid`: 将别的分支的commitid对应的提交剪切到当前分支。
执行下面这样的repo命令就行了: repo forall -c 'commitID=`git log --before "2017-03-17 07:00" -1 --pretty=format:..."%H"`; git reset --hard $commitID' 参数说明: forall 操作分支中的所有仓库 -c 只操作当前分支 --before 早于指定时间点的提交记录 -1...,然后对该仓库执行git reset --hard操作。...前后两个是单引号' 当中两个是 举例: repo forall -c 'commitID=git log --before "2017-04-15 07:00" -1 --pretty=format:"...%H"; git reset --hard $commitID'
保留工作区中所有修改 git reset --soft commitID # 重置并撤销 git commit 以及 git add,并且删除工作区中所有修改 git reset --hard commitID...# 取消某次合并 git reset --merge commitID # 提交到暂存区的内容退回到工作区,相当于撤销 git add . git reset HEAD # 把暂存区的 xx 重新放回到工作区...git reset HEAD xx # 重置到上一个版本 git reset --hard HEAD^ # 重置到上上一个版本,可以继续到上一个 git reset --hard HEAD^^ # 重置到指定版本...git reset --hard commitID git restore # 撤销上一次 commit 之后所有文件的修改,即撤销暂存区 git restore...为了记忆错乱避免混乱,我通常不用改操作,因为对于撤销完全可以用reset和restore,而对于分支切换可以用switch,他们从语义上来说更贴切。所以这个操作你可以不用,我也难得记!
或者 git add -A 操作,但是发现操作错误了,不希望进行暂存区,但是又不想移除已经修改的内容,可以执行 git reset --mixed 操作,这样将文件退出暂存区,但是修改的内容保留。...git rm --cache fileName fileName 为对应的文件名 删除暂存区和工作区的文件 git rm -f fileName git 删除错误的 commit commitId...为对应的 id 仅仅撤销已经提交的版本库,不会个性暂存区和工作区 git reset --soft commitId 撤销已提交的版本库和暂存区,不会修改工作区 git reset --mixed...commitId 彻底将工作区、暂存区和版本库记录恢复到指定的版本 git reset --hard commitId 如果你希望保留修改,但是撤销提交,则使用 --mixed ,如果想彻底恢复,则使用...--hard
git reset --hard HEAD 2、回退到上次提交 git reset --hard HEAD^ 3、回退到上n次提交 git reset --hard HEAD~n 4、回退到某次提交...git reset --hard commitid 重返未来版本 1、查看历史提交以及被回退的提交 git reflog 注意:该记录有时限,且只在本地 2、回到未来版本 git reset...--hard commitid 撤销修改 1、工作区文件撤销没有提交到暂存区/没有git add 撤销修改 git checkout 文件名 2、暂存区文件撤销 将暂存区文件撤销到工作区...git reset HEAD 文件不带–hard 撤销修改 git checkout 文件名 3、提交到了版本库 参见回退版本/提交 删除文件 1、删除文件从版本库中删除文件...切换到主分支 合并分支 解决合并时的conflict 提交到版本库 合并成功 查看分支状态 git log --graph git log --graph --
, 这个时候需要先执行git reset HEAD filename 将暂存区修改撤销,再执行上面git checkout命令。...也可以通过git reset --hard commitid命令,commitid可通过 git log --pretty=oneline 获取。...注意,这个时候由于使用了--hard参数,暂存区和工作区的修改都会被撤销掉。该命令同样可以用来撤销还没commit的merge。...缓存区和commit同步,但工作区不受影响 --hard – 缓存区和工作区都同步到指定的commit 如果想回到reset之前版本,则可通过git reflog获取commitid,再次执行命令git...reset --hard commitid。
(撤销当前工作空间中所有文件的修改) 文件已经add到暂存区,但还没有提交到本地仓库,想要撤销(即取消add操作) git reset [HEAD] file-name (撤销暂存区中的单个文件)...git reset [HEAD] ....(撤销当前暂存区中的所有内容) 文件已经提交到本地仓库,但还没有push到远程仓库,想要撤销 git log (查看并记录下要回滚到的commitId) git reset [--soft |...--mixed |--hard] commitId (回退版本) 文件已经提交到远程仓库,想要撤销 git log (查看并记录下要回滚到的commitId) git reset --hard...commitId (回退版本) git push -f origin branch-name 或 git revert commitId(回退版本) git push origin branch-name
1、安装git 官网下载:https://git-scm.com/ 下载安装完成后,在终端里查看git版本信息,出现版本信息,安装成功。 ?...2、.gitignore忽略提交文件 .gitignore 文件夹用于在上传git的时候,不需要提交系统IDE配置文件等到git,就需要把这些文件放到这个文件夹下面,git就会忽略这些文件,不会提交这些文件...#返回上一个版本 git reset --hard HEAD^ #知道身份证号,可以直接返回那个版本 git reset --hard HEAD 1093a #想要回到原来的版本,不想回到之前的话,...如果知道原来的身份证号,可以 git reset --hard HEAD 1095a #如果不知道之前的身份证号,通过 git reflog 查看之前的操作 ?...5、Tag 版本标签 在完成版本信息之后需要加一个标签,记录版本信息: git tag -a 版本号 -m "描述" 在之前的记录打标签: git tag -a 版本号 -m "描述" commitid
领取专属 10元无门槛券
手把手带您无忧上云