Git | QuickStart

Git 是目前世界上最流行的分布式版本控制系统。它速度快,简单,采用完全分布式,可高效管理代码,对非线性开发模式提供强力支持。

Git 诞生于一个极富纷争的年代。起因是 Linus 创建了开源的 Linux,在 2002 年以前,Linux 的内核维护工作主要是由世界各地的志愿者将源码文件通过 diff 方式发给 Linus,然后由Linus本人手工合并代码。到了 2002 年,Linux 代码库之大已经很难通过手工方式管理,于是 Linus 选择了分布式版本控制系统 BitKeeper 管理和维护代码。2005 年,BitKeeper 与 Linux开源社区的合作关系结束,迫使 Linux 开源社区不得不开发一套属于自己的版本控制系统。于是,Linus 花了两周时间用 C 写了一个分布式版本控制系统Git,一个月之内 Linux 源码已经由 Git 进行管理了。

0. Git 基本操作

0.1 创建一个新的仓库

$ git init
$ git add .
$ git commit -m "initial commit"
$ git remote add origin <url>
$ git push origin master

0.2 记录每次更新到远程仓库

$ git add .
$ git commit -m "initial commit"
$ git push origin master

1. Git 配置

1.1 配置用户信息

# git配置用户名
$ git config --global user.name "username"
# git配置用户邮箱
$ git config --global user.email useremail@example.com

1.1 查看配置信息

$ git config --list

2. Git 本地仓库

2.1 创建本地仓库

# git初始化本地仓库
$ git init

将当前所在目录初始化为一个本地仓库。初始化完成后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中,切记不要手动修改该目录下的任何文件。

2.2 克隆远程仓库到本地

# 克隆远程仓库的默认分支
$ git clone <url>
# 克隆远程仓库的指定分支
$ git clone -b <branch-name> <url>

git支持多种数据传输协议:

  • ssh协议:user@server:/path.git
  • https协议: http(s)://
  • git协议: git://

3. Git 版本控制

git 工作流程

git版本控制

3.1 查看文件状态

# 查看仓库文件状态
$ git status

git 文件状态变化

git文件状态

3.2 暂存修改

git add :①跟踪未跟踪文件,②将已跟踪文件放入暂存区。

# 跟踪所有文件,暂存所有修改
$ git add .
# 跟踪某个文件,暂存某个文件修改
$ git add <file-name>

3.3 撤销文件修改

# 撤销文件修改
$ git checkout --<file>

3.4 提交更新

git commit :将本次更新全部提交到本地仓库。

# 提交已暂存更新
$ git commit -m "提交说明"
# 暂存并提交更新
$ git commit -am "提交说明"

3.5 查看提交日志

# 查看提交日志
$ git log

3.6 版本回退

1. 软回退:只回退commit信息。

$ git reset --soft HEAD^

2. 默认回退:回退commit和index信息,只保留本地源码。

$ git reset --mixed HEAD^

3. 硬回退:commit、index信息、本地源码全部回退。

$ git reset --hard HEAD^

版本的表示方式:

  • HEAD^ 上一版本,HEAD^^ 上上个版本 ......
  • HEAD~n:上n个版本
  • <commit_id>:某个指定版本

4. Git 远程仓库

4.1 添加远程仓库

# 添加一个远程仓库
$ git remote add <remote-name> <url>

4.2 移除远程仓库

# 移除某个远程仓库
$ git remote rm <remote-name>

4.3 重命名远程仓库

# 重命名远程仓库
$ git remote rename <old-name> <new-name>

4.4 查看远程仓库

# 查看所有远程仓库
$ git remote -v

4.5 从远程仓库抓取数据

# 从远程仓库抓取数据
$ git fetch <remote-name>

4.6 推送数据到远程仓库

# 推送数据到远程仓库
$ git push <remote-name> <branch-name>

5. Git 分支

Git 分支原理:每一个分支存在一个分支指针,分支指针指向不同版本;
Git 分支切换:HEAD 指针指向某个分支指针;

5.1 创建分支

# 创建一个分支
$ git branch <branch-name>

5.2 切换分支

# 切换分支
$ git checked <branch-name>
#  创建并切换到该分支
$ git checked -b <branch-name>

5.3 合并分支

# 合并分支
$ git merge <other-branch>

5.4 删除分支

# 删除分支
$ git branch -d <branch-name>

5.5 查看分支

# 查看所有分支
$ git branch -v

6. GitHub Fork

Fork即派生项目。在GitHub社区中可以Fork任意开源仓库。Fork之后,GitHub 将在你的空间中创建一个项目副本,你对项目副本拥有读写权限。并且可以推送pull request给官方仓库贡献代码。

Fork 流程

  1. 从 master 分支中创建一个新分支
  2. 提交一些修改到新分支来改进项目
  3. 将这个分支推送到 GitHub 上
  4. 创建一个合并请求(Pull Request)
  5. 项目的拥有者合并或关闭你的合并请求

7. gitignore

.gitignore文件规范:

  • #:注释
  • !:取反
  • *:任意长度字符
  • ?:匹配单个字符
  • [abc]:匹配方括号中的任意单个字符
  • [0-9]:匹配两个字符之间的任意字符
  • **:匹配任意中间目录
  • /开头防止递归
  • /结尾指定目录

参考资料:GitBook

posted @ 2018-07-16 17:11  陈栗  阅读(259)  评论(0编辑  收藏  举报