很多小伙伴对git操作不是很熟练,如下是我通过阅读廖雪峰老师的网站进行的总结:
- 当提交代码时通过
git add,git commit+注释的方式提交 - 版本回退
- 通过
git reset --hard HEAD可以回退到上一版本,HEAD表示当前的版本,上个版本为HEAD^,上上个版本为HEAD^^,网上100个版本为HEAD~100, - 通过
git log查看历史版本的commit id,因为git内部有个指向HEAD的指针,所以回退版本会很快速。 - 但是当你想要再退回到新版本的时候。。。,咋办呢?git有个操作
git reflog用来记录你的每次命令,可以找到commit id进行操作
- 通过
- 工作区和暂存区
- 工作区:电脑里你能看到的目录
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。版本库中存放的是暂存区,git为我们创建的分支master,以及指向master的指针HEAD
git add命令是将文件添加到暂存区,git commit是将暂存区的所有内容提交到当前分支- 可以用
git status查看工作区状态
- 可以使用
git diff HEAD --+文件名查看工作区和版本库里面最新版本的区别 - 撤销修改
git checkout --+文件名可以丢弃工作区的修改,两种情况:- 修改后还没有被放到暂存区,也就是没有add到暂存区,撤销修改就回到和版本库一模一样的状态
- 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
- 需要注意的是没有
--,就变成了“切换到另一个分支”的命令 - 用命令
git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区,git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。 - 如果从暂存区提交到了版本库,可以通过版本回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。
- 删除文件
- 当使用git add和git commit将文件提交到分支,需要删除文件时,可将文件手动删除,再通过
git rm <file>和git commit -m "remove <file>"从版本库删除该文件 - 如果删错了,可以通过
git checkout -- <file>将误删的文件恢复到最新版本。git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- 当使用git add和git commit将文件提交到分支,需要删除文件时,可将文件手动删除,再通过