git常用命令
git使用命令在网上教程一搜一大把,问题就是实在是太多教程了,加上命令本身功能强大,各种操作容易让人迷失自我,对初学者反而增加了难度。
本文总结了几个在日常生活中最常用的命令,建议了初学者可以优先搞定这部分,就够你80%的日常需求了,之后再慢慢增加知识储备,逐渐提升。
废话不多说,开始学习!
git init
git init
是最最最基础的命令了,把你的某个文件夹初始化成一个git项目。命令简单不多说,只是在你git init
之前,这有个小建议:记得在你的项目目录下添加上.gitignore
文件,该文件会忽略你指定的文件或文件夹被添加到git中,比如你的账号密码配置文件,ide工程辅助文件等。尽早添加.gitignore
文件能省去之后好多事~
git status
该命令查看你当前git项目的状态,仔细查看输出,可以看到哪些文件已经被放到暂存区(index)了,哪些还只是停留在工作区(working directory)。为了说明暂存区和工作区的区别,这里打个比方:
小时候打小游戏闯关,一共有100层,每层都有5个boss。为了防止没命了重来,在每一层打过了一个boss就会选择存档一下,以便死了可以重来。这一层5个boss都打了,游戏会自动给你存档一下,说明这一层过了进入下一层。
在这个例子中,你一直在玩的界面,就可以理解为工作区(working directory);你打完每个boss手动存档一下,就是对应着将当前的所有东西用git add
存到了暂存区(index);最后打完了一层的5个boss,系统自动存档,就相当于git commit
添加到了仓库。
git add
在项目文件夹下对你的文件进行修改,修改完后在项目的根目录下输入git add .
就可以把刚才的内容都存到暂存区啦,是不是挺简单~,提一下,别忘了最后的.
,它代表当前整个目录,所以要在项目的根目录下面执行该命令。
在git commit
之前可以多次调用git add
往暂存区,等攒个大的再用git commit
提交到仓库里面去。
git commit
git commit -m '备注信息'
将累计存在暂存区内的数据一次性提交到仓库,同时清空暂存区的内容。然后,你用git log
就能看到最新提交的commit了。
好了,到现在为止,如果你只需要一个分支,且仅在本地使用git仓库,那么上面的4个命令也勉强够用了,下面谈谈多个分支,以及远程分支等概念,毕竟还是得放到github上给众人炫耀一把。
git checkout
git checkout
命令算是比较复杂的命令了,因为它有好多参数,也能实现很多功能。这里介绍两个常用的。
切换到已有分支,或者切换到一个全新的分支
从暂存区恢复文件到工作区
第一个功能是切换分支。假设你刚学会git init
,创建的仓库默认是master
分支。这时你可以利用git checkout -b dev
分支新建一个分支,名字叫dev
,名字可以自己取。该命令中-b
代表新建一个分支。如果没有-b
选项,则切换到已有的分支,例如在dev
分支下面调用git checkout master
则会切换回已经存在的master
分支。
另一个功能是从暂存区恢复文件到工作区。如果你之前用git add
命令添加工作区文件到暂存区过,就能够用git checkout -- file1
恢复文件到工作区,该命令小心点用,因为你的工作区文件会被覆盖。命令中有--
这个参数,其实就是告诉计算机用该命令恢复文件。试想一下,没有--
的话,git checkout file1到底是把file1当做文件名称呢还是分支名称呢,计算机是不好区分的。
git push
git push
用来把本地仓库推送到远程仓库。远程仓库往往就是github或gitee等平台咯。推送到远程仓库前,第一次还需要用git remote
等设置远程仓库的信息,不过一般我的做法是,在github上新建个仓库(注意要新建空白的仓库不要添加readme等文件),然后网站会自动把你需要配置的信息以命令的形式给你,你只需要复制粘贴就行啦。
这里记录个小知识点,git push
命令往往会加-u
选项,这个选项是把你本地的分支和远程的分支建立关联关系,这个关系有什么用呢?最常见的就是未来在你git pull
拉取远程分支的时候,系统会自动把远程的分支合并到你本地分支当中。如果git push
的时候不设置-u
选项,那么本地分支和远程分支不建立关联,等你要合并远程分支的时候,就需要git fetch
获取分支,然后手动git merge
合并分支,多了步操作。
git fetch
该命令就是从远程仓库获取指定的分支。git fetch origin master
就会从远程仓库下载master
分支到本地,以origin/master
名称存储在本地。注意,一般从远程fetch回来的分支,我们不对它进行改动,只是读取它或者基于它创建新的分支再修改(利用git merge
或者git rebase
等命令基于远程分支进行操作)。
git merge
该命令就是合并分支啦。切换到你想要合并的分支,然后调用git merge xxx
就能把xxx
分支合并到当前所在分支了。
如果合并的时候冲突了,就得手动去解决冲突问题,解决好后再用git add
和git commit
命令提交一个新的commit到仓库。
OK,差不多把部分常用的git命令讲完啦,废话比较多,写的也粗糙,只是希望大家有这么个概念,也便于之后学习过程中有个印象。毕竟都是基础的命令,算是git的必知必会了。
最后再多一句嘴,很多IDE已经有了很不错的git可视化界面了,成功避免了咱们新手噼里啪啦一顿操作最后还出错的尴尬处境,了解了最基础的git命令后,就去拥抱可视化的版本控制界面吧,提高生产效率才是程序员的第一要义_
祝大家早日搞定git,成为新一代研发大神~