声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

1、提交

git add -A  //提交所有变化
git add -u  //提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add .  //提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

2、git还原到某个版本

git reset --hard xxxxx //还原到某个版本
git push -f //强制推送

3、使用reset撤销commit、回退版本 【未推送到远程】

比如一个文件 1.txt 提交了三次

commit名 commitID 文件内容
commit3 003 test3
commit2 002 test2
commit1 001 test1

3.1 执行

git reset --hard 001

会发现变成如下

commit名 commitID 文件内容
commit1 001 test1

3.2 执行

git reset --mixed 001

会发现变成如下

commit名 commitID 文件内容
commit1 001 test3【红色,未add】

下载附件

3.3执行

git reset --soft 001

会发现变成如下

commit名 commitID 文件内容
commit1 001 test3【绿色,已add】

下载附件

总结:

执行 git reset --hard commitXId 会撤销此X提交之后的所有提交记录,而且文件的内容也会恢复到X提交时的状态 【硬重置- 撤销提交记录,文件内容全恢复到之前】

仅仅移动当前Head指针,不会改变工作区和暂存区的内容。

执行 git reset --mixed commitXId 会撤销此X提交之后的所有提交记录,而且文件的内容也会恢复到X提交时的状态 【混合重置- 撤销提交记录,文件内容全恢复到之前,但未add】

移动head指针,改变暂存区内容,但不会改变工作区。

执行 git reset --soft commitXId 会撤销此X提交之后的所有提交记录,但是文件的修改不会撤销,依然是最后的修改状态 【软重置- 撤销提交记录,文件不恢复,已add】

当前head指针、工作区和暂存区内容全部改变。

4、使用revert反做commit 【未推送到远程】

revert 目的是撤销某个版本的提交,但是又不影响后续其他版本的提交

比如 1.txt 文件,第一次提交内容是1,第二次提交内容是2,第三次提交内容是3

如果使用reset 001,提交记录只剩001
如果使用revert 001,提交记录是 001 002 003 004 【这里004的记录是由于,撤销001提交的文件 + 003提交的文件,两者合并生成新的提交记录004,此时应该注意合并冲突】