常用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

尾巴

常用的命令总结差不多就这些了,基本能满足到90%的工作场景需求。如果有补充和错误欢迎给我留言,如果文章对你有帮助,也欢迎给我点赞和关注,谢谢!

猜你喜欢

转载自blog.csdn.net/abs625/article/details/116793903