Git 撤销已提交的文件

多人开发的项目,使用git时,会有冲突的存在的情况

1.1  如果不小心commit了一个不需要commit的文件,可以对其进行撤销。

git add .
git commit -m'测试'

git push 推送不上去,提示有冲突

使用命令 git reset --mixed HEAD~2 ,回退到第一步,将步骤2取消掉,步骤3的文件将会撤销,变成等待添加,但不会丢失,我们只需要在add一次即可。

此时先回退之前的修改(记得备份),再 git pull 拉取最新代码,加上自己的修改再次提交即可

例如:假设有三个commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

当执行git revert HEAD~1时, commit2被撤销了

1.2  另一种方式

可以继续操作git push

重新再次执行 git add .

git commit -m'测试'

git push

命令后,此时查看文件修改,会看到有冲突的某一文件,这时,查看修改是否正确,决定采用哪次修改


关于git reset命令,包括 --mixed,--soft --hard等,其中--mixed为默认方式,他们之间的区别如下

git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
git reset -soft :取消了commit  
git reset -mixed(默认) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改

git revert和git reset的区别:

git revert 是撤销某次操作,此次操作之前的commit都会被保留

git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区

你可能感兴趣的:(前端)