基础操作
- 使用 win + r 打开运行,输入 cmd 进入终端。
- 切换目录,使用
cd
操作切换路径为本地项目代码库的路径。 - 输入命令
git pull
拉取最新的代码,以防代码冲突。 - 输入命令
git status
查看项目已发生过的新建或者修改的文件。
输入git log
查看所有提交的版本
添加文件 add
操作
- 输入命令
git add 文件名
对指定文件进行添加操作。 - 输入命令
git add .
对所有文件进行添加操作。
撤销 add
添加操作
- 输入命令
git reset 文件名
即可撤销 git 的 add 操作。 - 如果想要撤销所有文件的
git add
操作,则只需要把文件名替换成git reset .
就行了。
git reset --mixed
仅取消git add
带来的效果。 即本地的修改还在,但是取消了 add 的状态。
撤销 commit
提交操作
git reset --hard 版本号(commitId)
这个命令回退到指定版本的 commit,并且不会保留本地尚未提交的修改。--hard
删除工作空间改动代码,撤销 commit,撤销git add .
。
取消commit时,更安全的操作:git revert
git revert 版本号(commitId)
,会撤销指定的 commit,但是与git reset --hard
不同的是,revert
不会丢掉被撤销的 commit,而是会生成一个新的 commit,其所有操作与指定的 commit 相反,以此来覆盖掉该 commit 的修改。
eg. 按序有三个 commit:c1、c2、c3,现在我们位于c3。
使用git commit --hard c2
,则当前状态会退回到 c2,git log
只会看到c2、c1。
如果使用git revert c2
,则会新添加一个 c4 的 commit,c4 的操作与 c2 完全相反。git log
可以看到1 ~ 4 全部的 commit。
撤销远端的代码
- 如果使用了
git revert 版本号(commitId)
,直接git push
即可。 - 如果使用的是
git reset
,或者 rebase 到了之前的 commit,因为此时只是在本地撤回代码了,还没有同步到线上,git push
重新提交会报错,使用命令git push -f
/git push -force
强推一下就可以了。
-f
一定慎用,如果涉及到远端主分支,干脆就不要用
涉及远端的,还是推荐用 revert
reset
参数
--mixed
默认参数
不删除工作空间改动代码,撤销 commit,并且撤销 git add .
操作。git reset --mixed HEAD^
和 git reset HEAD^
效果是一样的。
--soft
不删除工作空间改动代码,撤销 commit,不撤销 git add .
操作。
--hard
删除工作空间改动代码,撤销 commit,撤销 git add .
操作。完成这个操作后,就退回到了上一次的 commit 状态。
注:如果 commit 注释写错了,只是想改一下注释,只需要:git commit --amend
。此时会进入默认 vim 编辑器,修改注释完毕后保存就好了。