当我把新建的内容通过 git add .
加入暂存区之后,发现有一个文件并不是我想要加入进去的,应当把这个文件撤销加入暂存区,可以使用如下指令:
git reset [fileName]
如想撤销已经加入到暂存区的hello.txt文件,那么执行git reset hello.txt
,这个时候将会把hello.txt文件移出暂存区,相当于撤销了上面的add操作。这个时候hello.txt文件里的内容都还保存着。
如果不指定filename,那么将会把上面执行add操作添加到暂存区的所有文件都移出暂存区,即把HEAD恢复到上一次提交的状态。
git reset
这个相当于后面默认加了–soft,这样会保留更改。还有一种,是直接删除掉新加入的文件,即
git reset --hard
这个操作不但会把文件移出暂存区,还会删除掉当前文件。
当我们做了一次commit之后,想要再修改comment,只要使用如下指令即可:
git commit --amend
这样就可以进入vim修改commit。
这样也可以直接更改
git commit --amend -m "new comments"
git rebase最主要的作用是变基:将分支合并,还可以避免四边形的出现。https://git-scm.com/docs/git-rebase
git rebase master feature-A
把指定分支合并到当前分支:
git merge test
git reset --soft HEAD~3
指令:
git cherry-pick <commitHash>
例如:
原状态
a - b - c - d Master
\
e - f - g Feature
在master分支上执行
git chery-pick f
则
a - b - c - d - f Master
\
e - f - g Feature
可以一次剪切多个commit。