/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢/


最最最基础的命令及参数:

  • $ 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

    查看帮助信息

有下面三种形式:

  1. $ git help <verb>
  2. $ git <verb> --help
  3. $ man git-<verb>

比如我们要查看 config 命令的用法,使用:

  1. $ git help config

最全、最方便的方式是使用 git help --web <command-name> ,比如 git help --web log

$ git config

初次使用,需要配置基本信息:

  1. $ git config --global user.name "Senchun Yao"
  2. $ git config --global user.email senchun.yao@gmail.com
  3. $ git config --global core.editor "vim"

因为使用了 --global 参数,以后该用户的所有仓库都会默认使用该配置信息(如果没有为特定的仓库进行专门配置的话),配置信息在文件 ~/.gitconfig 中。

说明:

  • etc/gitconfig 文件是针对系统所有用户的配置,使用参数 --system
  • ~/.gitconfig 文件是针对当前用户的配置,使用参数 --global
  • .git/config 文件是仅对当前repo有效的配置,该配置文件就在当前仓库的 .git/ 目录下。

注意:每一个级别的配置都会覆盖上层的相同配置

如果系统还设有代理的话,那么还需对git进行代理配置:

  1. $ 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

使用方法:

  1. $ git clone https://repo-address-bla-bla

$ git status

查看当前所处的分支,以及粗略查看当前的状态与之前的状态有哪些不同,比如有哪些文件还未 commit 等等。

$ git add & $ git rm

这两个命令是一码事, git add 是告诉git去追踪指定文件/目录, git rm 是告诉git取消对指定文件/目录的追踪。

$ git commit

举个例子:

  1. $ git commit -m 'My first commit'

参数 -m 就是 commit 时顺带发送的消息,让别人知道这次 commit 大概做了什么。

注意commit 并不代表提交到服务器上面去了,到目前为止所做的改变均是在本地机器上, commit 所做的事就是在舞台上的最后一次彩排(专业一点来说就是:快照,Staged Snapshot),然后将它提交到项目历史上去。

$ git push

做了这么多改变了,是时候发布了:

  1. $ git push origin master

注意:

  • 参数 origin 表示从哪里来就滚回哪里去。
  • 参数 master 就表示主分支 master
  • 执行完这句话后,所做的改变就已经推送/发布/ push 到服务器上去了。

    $ git pull

    这个简单来说就是把项目再/ pull 过来,比方说别人对这个项目进行了一些小改动之类的:
    1. $ git pull --all
    OK,拉回来了。

    $ git branch & $ git checkout

    现在咱们这个大项目要启动一个额外的小项目(分支/ branch ),OK,那我们就创建一个分支:
    1. $ git branch extra-project
    分支就是git的一个普通指针,它实际上不对我们的文件进行任何改动。

对了,执行完上面那条命令后,git并未自动将我们切换到新分支上!
**
所以,我们要自己去看看/ checkout 新分支:

  1. $ git checkout extra-project

然后我们所做的改变都是在新分支上进行的。

$ git merge

小项目完成了,现在我们就要将它合并/ merge 到主分支 master 上了:

  1. $ git checkout master
  2. $ git merge extra-project

注意看第一条命令,我们先要切换回主分支,然后再合并。

合并完了,在那个分支上的工作也全部做完了,所以我们就删除那个分支:

  1. $ git branch -d extra-project

大功告成。

注意:分支一般都是做一些小改动,当多个大项目互相合作时,不建议用分支。

还有就是,因为我们这个分支的逻辑非常线性,所以我们都是采用的默认 merge 方式,即 fast-forward ,关于 fast-forwardNo-fast-forward 以后再说吧。

好了,快速入门大概就是这么回事。