/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢。/
最最最基础的命令及参数:
$ git config
--local
:针对当前仓库--global
:针对当前用户--system
:针对整个系统--list
:查看配置列表
$ git init
$ git clone
$ git status
$ git add
$ git rm<br />
$ git commit
-m
:发送commit
的消息
$ git push
$ git pull
-- all
$ git branch
-d
:删除指定的branch
$ git checkout
$ git merge
查看帮助信息
有下面三种形式:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
比如我们要查看 config
命令的用法,使用:
$ git help config
最全、最方便的方式是使用 git help --web <command-name>
,比如 git help --web log
。
$ git config
初次使用,需要配置基本信息:
$ git config --global user.name "Senchun Yao"
$ git config --global user.email senchun.yao@gmail.com
$ git config --global core.editor "vim"
因为使用了 --global
参数,以后该用户的所有仓库都会默认使用该配置信息(如果没有为特定的仓库进行专门配置的话),配置信息在文件 ~/.gitconfig
中。
说明:
etc/gitconfig
文件是针对系统所有用户的配置,使用参数--system
。~/.gitconfig
文件是针对当前用户的配置,使用参数--global
。.git/config
文件是仅对当前repo有效的配置,该配置文件就在当前仓库的.git/
目录下。
注意:每一个级别的配置都会覆盖上层的相同配置。
如果系统还设有代理的话,那么还需对git进行代理配置:
$ git config --global http.proxy 'socks5://192.168.1.101:7891'
使用 --list
参数来查看配置列表。
$ git init
git init [RepoName]
省略参数则直接把当前目录初始化成Git管理的仓库,如果添加了参数 RepoName
,则在当前目录下创建一个 RepoName
的文件夹,并把该文件夹初始化成Git管理的仓库。
$ git clone
git clone
没太多好说的,就是注意先将工作路径切换到指定的仓库路径下,比如 cd ~/repos
。
使用方法:
$ git clone https://repo-address-bla-bla
$ git status
查看当前所处的分支,以及粗略查看当前的状态与之前的状态有哪些不同,比如有哪些文件还未 commit
等等。
$ git add
& $ git rm
这两个命令是一码事, git add
是告诉git去追踪指定文件/目录, git rm
是告诉git取消对指定文件/目录的追踪。
$ git commit
举个例子:
$ git commit -m 'My first commit'
参数 -m
就是 commit
时顺带发送的消息,让别人知道这次 commit
大概做了什么。
注意: commit
并不代表提交到服务器上面去了,到目前为止所做的改变均是在本地机器上, commit
所做的事就是在舞台上的最后一次彩排(专业一点来说就是:快照,Staged Snapshot),然后将它提交到项目历史上去。
$ git push
做了这么多改变了,是时候发布了:
$ git push origin master
注意:
- 参数
origin
表示从哪里来就滚回哪里去。 - 参数
master
就表示主分支master
。 - 执行完这句话后,所做的改变就已经推送/发布/
push
到服务器上去了。
这个简单来说就是把项目再拉/$ git pull
pull
过来,比方说别人对这个项目进行了一些小改动之类的:
OK,拉回来了。$ git pull --all
现在咱们这个大项目要启动一个额外的小项目(分支/$ git branch
&$ git checkout
branch
),OK,那我们就创建一个分支:
分支就是git的一个普通指针,它实际上不对我们的文件进行任何改动。$ git branch extra-project
对了,执行完上面那条命令后,git并未自动将我们切换到新分支上!
**
所以,我们要自己去看看/ checkout
新分支:
$ git checkout extra-project
$ git merge
小项目完成了,现在我们就要将它合并/ merge
到主分支 master
上了:
$ git checkout master
$ git merge extra-project
注意看第一条命令,我们先要切换回主分支,然后再合并。
合并完了,在那个分支上的工作也全部做完了,所以我们就删除那个分支:
$ git branch -d extra-project
大功告成。
注意:分支一般都是做一些小改动,当多个大项目互相合作时,不建议用分支。
还有就是,因为我们这个分支的逻辑非常线性,所以我们都是采用的默认 merge
方式,即 fast-forward
,关于 fast-forward
和 No-fast-forward
以后再说吧。
好了,快速入门大概就是这么回事。