命令中:<>表示可选填写 []表示选项必须填写 ()表示可以等价替换为()里内容
1.暂存相关命令(前三个命令最常用)
git add [file] 提交某文件到暂存区([file]可以是文件名或目录名)
git add -A <path> 提交所有变化到暂存区,省略<path>
表示.(即当前目录)
git add . 提交新文件和被修改文件(不包括被删除文件)到暂存区
git add -u <path> 提交被修改和被删除文件(不包括新文件)到暂存区,省略<path>
表示.(即当前目录)
git add -i <path>
查看中被所有修改过或已删除文件但没有提交的文件,并通过其revert
子命令可以查看<path>
中所有未跟踪的文件,同时会进入一个子命令系统。
2.提交相关命令(第一条命令用得最多)
git commit -m "message" 将在本地存储库的“add”中所暂存的更改提交,以及添加本次提交的描述message信息
git commit -a “message” 将在本地存储库已跟踪文件中的执行修改或删除操作的文件都提交,以及添加本次提交的描述message信息
git commit -am "message" 代表-a与-m命令作用都生效
git commit -v 显示HEAD已提交和本次将要提交的内容之间的统一差异与发生了哪些更改来帮助用户描述提交。
git commit --amend 进入vim,可以更改上次提交的描述信息进行保存
git commit --amend -m "updated last message" 更改上次提交的描述信息用updated last message替换并保存
3.撤销本次修改/add/commit
(1)撤销在工作区的修改的代码
git checkout -- [file] 丢弃某个文件本次修改
git checkout -- . 丢弃全部
注意:git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了
(2)代码git add到缓存区,并未commit提交
git reset HEAD [file] 丢弃某个文件本次暂存
git reset HEAD . 丢弃全部
(3)git commit到本地分支
git reset <选项> HEAD-1(HEAD^) 回到上次提交版本
选项:
--mixed (为默认参数,与不写效果一样)不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
--soft 不删除工作空间改动代码,撤销commit,不撤销git add .
--head 删除工作空间改动代码,撤销commit,撤销git add . (即恢复到了上一次的commit状态)
原文地址:https://www.cnblogs.com/jest549/p/11479941.html