Git取消commit/版本回退

一、基本概念 ref

二、操作方法

三、总结

  • 取消commit时,尽量使用git reset –soft,他可以保留已经staged的内容
  • git reset和revert的区别是:假设git log:A B C (A为HEAD指向的即最新的commit)。
    • 前者操作直接git reset –soft/mixed/head C返回到某个指定的commit C,那么HEAD指向的即最新的commit为C,A和B直接消失;
    • 后者操作会重新生成一个commit(需要自定义),比如你要返回commit C,应该操作为 git revert -n B(相当于撤销B和B之后的更新,指向C)
  • 将新的修改追加到之前某个commit:git rebase(教程)
  • 如果想放弃当前所有的更改,直接git reset -hard,会清空工作区、暂存区。

四、references

 

git只track某些类型文件或者文件夹

修改.gitignore文件

ref:https://blog.csdn.net/mn960mn/article/details/44172167

git修改commit详情(用于追加修改)

不建议使用此命令,因为修改后commit的id改变了,push会出现冲突(git push –force可解决,但是会修改远程库的commitID,ref

git commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明;


如果是追加修改的话,即对最新的commit不满意:直接git add新的修改(即不需要rebase),然后直接git commit –amend直接覆盖;

注意:修改后会出现commit的id发声变化,无法与远程库同步,即push会冲突,所以不建议这么做!

ref:git rebase 修改以前提交过的内容

git learning &4 分支管理

1.常见命令

2.本地分支push到 不同名的远程分支(eg:本地a分支的内容需要同步到远程master分支)

查看分支的对应情况

3.保留当前分支工作区,切换到其他分支

ref:Git push won’t do anything (Everything up-to-date)