常用Git命令使用
前言
最近项目版本控制工具从svn换成了git,所以将常用的git命令使用方式做下记录。
暂存区
暂存区(可能不同人有不同叫法,这里先这么叫)到底是个什么东西?其实暂存区在我们使用git时是一个很重要的概念,在使用git命令之前,必须要理解。先看下面我画的一张草图大概了解下暂存区:
图画的有点潦草,但是意思应该很清楚。
工作区:你的本地的工作目录,一般是项目workspace。
暂存区:你暂时可以理解为git放在你电脑上的一块缓存区域。
远程仓库:这个么?哎,我不说,就是玩儿。
我们在工作区的修改经过git add后会同步到暂存区,到暂存区后,我们经过git commit 生成一个提交节点,最后通过git push才能将代码同步到远程仓库。
常用命令使用
git status
这个是查看工作目录中哪些文件有改动,比如说增加、删除文件或者修改了文件。
git add
将新增文件(Untracked files)加入暂存区。我们使用git add test.txt之后,在使用git status命令如下:
可以看到原来红色(Untracked files)已经变成了绿色(Changes to be committed),这说明test.txt这个文件已经加入了暂存区。
而且下面几个红色的文件都可以通过git add命令将修改同步到暂存区。
git commit
这个命令是将暂存区中的内容生成一个提交(备份),使用是格式是git commit -m ‘注释内容’,commit之后再使用git status 发现暂存区中的内容已经没有了:
git push
通过commit提交之后,然后git push [remote-name] [branch-name]来同步本地代码到远程仓库。当remote-name是origin,branch-name是master是,也可以简写成git push,这样就完成了一次完整提交。
git log
查看提交的记录
注意:log很多时按Q键退出。
git pull
通过git pull[remote-name] [branch-name],看名字就知道和git push是相反的,这个是将远程仓库的代码同步到本地来。记得同步之前一定要将本地修改提交到远程仓库,否则可能导致冲突。
git rm
我们删除了工作区的文件后,使用git status查看,已经提示我们删除了
然后我们用git rm filename将暂存区的文件也删掉,运行git status
然后执行git commit和git push将改动同步到远程仓库。
注意:如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中git rm --cached filename。
git reset HEAD
把暂存区里的文件用上一次提交时的文件代替。接上面,test.txt文件删除同步到暂存区后,我们不执行commit和push操作,然后使用git reset HEAD test.txt,然后再使用git status命令
发现暂存区的删除状态没有了。
git checkout
把工作目录下的文件用暂存区里的文件代替,我们执行git checkout test.txt,然后git status命令
工作区的删除状态被暂存区文件(暂存区文件没有删除状态)替代。
如果你的工作还没有添加到暂存区,想要恢复,那么用git checkout filename 即可,如果添加到了暂存区,可以先git reset HEAD filename 再git checkoutfilename 。
git reset commitID
把当前版本回退到之前提交的任意一个版本中,回退了暂存区中的文件,工作区中的文件是不会改变的。上面我们使用过这样一个指令,git reset HEAD filename,这其实是同一个指令!在Git中,HEAD表示最近一次提交,而最近一次提交的上一次提交可以用HEAD^,上上次后面以此类推为HEAD^^。
我们先通过git log可以找到提交的commitID,然后找到想要回退的提交就行。
git branch
查看分支,加个-a参数就是查看远程分支,不加就是查看本地分支。切换分支使用git checkout branchname
创建本地分支并推送到远程
//创建本地分支
git checkout -b new-branch-name
//推送本地分支到远程仓库
git push origin new-branch-name
新建本地分支并和远程分支关联
git checkout -b 本地分支名 remotes/origin/远程分支名
清理远程分支
在清理之前我们可以用如下命令来查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
git remote show origin
此时可以看到远程仓库中被删除调的分支的状态为:
stale (use ‘git remote prune’ to remove)
接下来就可以使用这个命令来清理远程分支:
git remote prune origin
删除本地分支
git branch -d [分支名]
尾巴
常用的命令总结差不多就这些了,基本能满足到90%的工作场景需求。如果有补充和错误欢迎给我留言,如果文章对你有帮助,也欢迎给我点赞和关注,谢谢!