首页 > 其他分享 >test3

test3

时间:2024-06-05 14:25:26浏览次数:10  
标签:reset test3 git add 暂存区 push commit

Git:如何撤销已经提交的代码

 

日常操作流程
本地工作区(尚未暂存) ---> add . 到暂存区 ---> commit 到本地仓库 ---> pull拉取关联远程仓库分支合并到本地的分支---> push 到远程分支

查看commit提交的内容

git log #查看commitId的log 
git show #查看最新的commit
git show commitId #查看指定commit c440aa10ac的所有修改:

场景一:

修改的文件已被git commit,再次修改的文件,合并到上一次提交的commit中,不再产生新的Commit

# 修改最后一次提交 
git add sample.txt #修改文件添加到暂存区 
git commit --amend -m"说明" #合并提交到上一次的commit里
git commit --amend  #或者 进入到编辑里编写提交注释

修改上一次commit提交的备注

git commit --amend

场景二:

当修改文件后,还没有add提交到暂存区,也没有commit时,想要放弃修改

git checkout 11.txt #放弃11.txt文件的修改
git checkout .  # 放弃所有文件的修改

git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。

场景三:

当文件add提交到暂存区,还没有commit时,发现文件提交错了,这时想撤回文件

git reset HEAD a.php #只撤消a.php
git reset HEAD * #撤消所有

这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化

场景四:

当文件add提交到暂存区,也commit了,发现文件提交错了,这时想撤回文件

git reset HEAD^ # 撤消上一次的commit 不带参数默认是--mixed 例:git reset --mixed HEAD^  也可以写成git reset HEAD~1
git reset HEAD~2 如果你进行了2次commit,想都撤回,可以使用HEAD~2
git reset fdaeaf208f0e142ceba5766d17786d60fcebc1dd #撤消指定的commitId
git reset --hard fdaeaf208f0e1 # 回退到指定版本 放弃工作区的所有修改,还原到指定版本的代码

reset三种模式区别

    --soft:不删除工作空间改动代码,撤销commit,不撤销git add .操作,重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
    --mixed(默认):不删除工作空间改动代码,撤销commit,并且撤销git add . 操作,重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。
    --hard:删除工作空间改动代码,撤销commit,撤销git add . 操作,重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。
注意完成这个操作后,就恢复到了指定版本的commit状态。

push到远程仓库

如果代码之前已经push到远程仓库里,想要撤消线上的push

步骤:先回退本地版本,再强推到远程仓库里,有两种方法

方法:

  1. reset(回滚到)
  2. revert(重做)

区别:

  • reset是指将HEAD指针指到先前已存在的历史提交,历史记录中不会出现放弃的提交记录。
  • revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;

reset(回滚到)

git reset --hard fdaeaf208f0e1 # 回退到指定版本 放弃工作区的所有修改,还原到指定版本的代码
git push 目标分支 本地分支 -f

此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,要加-f参数强制推送

#git push 目标分支 本地分支 -f
git push origin master -f 

revert(重做)

参考下面的文档:
https://www.cnblogs.com/birdy-silhouette/p/13958151.html


或者在IDEA中操作:


选soft 或者 mixed 都可以,这个你本地开发的代码不会丢失。

查看代码已经撤回了

4.git push 重新提交会报错;

把撤回的状态推送到线上仓库里,因为此时只是在本地撤回代码了,还没有同步到线上

这是因为撤回后,本地仓库里的版本小到线上仓库的,所以被拒绝
下面强推一下就可以了

git push origin master -f

5.使用git push --force
执行完上面的命令后,线上仓库里的提交就被撤回了。
然后,自己在本地再修改代码,测试好了,再重提交代码

add .  
add commit -m"edit code"  
add pull 
add push

 

 

标签:reset,test3,git,add,暂存区,push,commit
From: https://www.cnblogs.com/izzh/p/18232925

相关文章

  • 省集Test3-D2 T2做题记录
    link一道比较深刻的题目。考虑条件相当于:对于任意\(1\)的个数有限的\(S\),其所有的长度为\(2k+1\)的子串,经过\(p\)的映射后\(1\)的个数不变。统计所有的长度固定的子串信息,我们有一个trick:对于一个长为\(2k+1\)的二进制串\(w\),设其前\(2k\)位和后\(2k\)位组成......
  • Contest3376 - 2024寒假集训-排位赛竞赛(一)
    A:幂位和高精度。用高精度加法或乘法算出\(2^{1000}\),再将各位累加即为答案。#include<bits/stdc++.h>usingnamespacestd;#definecctieios::sync_with_stdio(0);cin.tie(0);cout.tie(0)stringAP_add(stringA,stringB)//高精度加法{intlena=A.size()......
  • Atcoder beginner constest319 Minimum Width
    因为要求窗口的最小宽度,当宽度为w时满足条件,那么宽度为w+1时也满足条件,有此可见是有单调性的,那么可以用二分搜的方法,且此题目一定有解。因为M最大为2乘以10的5次方,Li最大为10的9次方,所以宽度最大为2乘以10的14次方,单词每次间隔1,所以这里设成10的17次方。之后就是套二分模板解暴力......
  • Test3
    方案markdown+Typora+picGo+jsdelivr+github仓库+bloghelperTypora:本地Markdown编辑器,用于本地编写文档PicGo:一个用于快速上传图片并获取图片URL链接的工具,可以与Typora集成,实现黏贴图片后自动上传图片到图床doocs.github.io/md:一款高度简洁的微信Ma......
  • test3
    Advertisement:)pica-highqualityandfastimageresizeinbrowser.babelfish-developerfriendlyi18nwithpluralssupportandeasysyntax.Youwilllikethoseprojects!$\sum_{i=1}^ni^2=\frac{(n^2+n)(2n+1)}{6}$$$\sum_{i=1}^ni^2=......
  • test3-draft-datetime
    Advertisement:)pica-highqualityandfastimageresizeinbrowser.babelfish-developerfriendlyi18nwithpluralssupportandeasysyntax.Youwil......
  • test3-with-more-keys
    Advertisement:)pica-highqualityandfastimageresizeinbrowser.babelfish-developerfriendlyi18nwithpluralssupportandeasysyntax.Youwil......
  • test3-new-version-fix-image-upload
    Advertisement:)pica-highqualityandfastimageresizeinbrowser.babelfish-developerfriendlyi18nwithpluralssupportandeasysyntax.Youwil......
  • test3-with-formulas
    Advertisement:)pica-highqualityandfastimageresizeinbrowser.babelfish-developerfriendlyi18nwithpluralssupportandeasysyntax.Youwil......
  • test3-with-pic
    Markdown示例文件这是一个加粗的文本。这是一个斜体的文本。这是一个~~删除线~~的文本。标题H1标题H2标题H3标题H4标题H5标题H6这是一个引用。这是一个......