Git
更新日期:
GitHub 的核心是一个开源的版本控制系统,即 Git,Git 负责你本地电脑和 GitHub 之间的所有相关事情。Git 允许多人同时操作一份代码,且不用担心相互覆盖,它是一个分布式的版本控制系统,每一个 Git commit 都是用邮件地址来标识一个用户。
资料
Git 的主页 https://git-scm.com/ 里包含了丰富的内容。如下
Git 的特性
- Branching and Merging
- Small and Fast
- Distributed
- Data Assurance
- Staging Area
- Free and Open Source
Pro Git Book
- Reference Manual:各种命令
- Book:Pro Git,由浅入深非常系统。有英文、中文等多种版本。
tryGit
tryGit 是一个实战 Git 相关命令的在线工具,你可以在浏览器上输入命令,就能看到相应的执行结果。特别方便,也很直观。博主友情提示:在在线输入代码的时候,可以留意下右下方的“Advice”。它里面有本步骤相关的名字解释、原因介绍、原理说明,对入门的人来讲,真的很实用。诸如:
笔记
以下整理的信息,均来自于 tryGit 和 Pro Git Book。
操作
clone
有两种方式可供选择:
- HTTPS(prefer to use it)
用 HTTPS 克隆,优点是方便。它是用 GitHub 的用户名和密码进行认证的。所以,每次提交的时候,都会提示你输入用户名和密码(当然也有相应的工具帮助缓存 GitHub 的账户信息,比如 credential helper ) - SSH
它不需要输入用户名和密码,它是用 SSH key 认证的。值得一提的是,SSH key 和机器相关,等你换了一台机器的时候,就得重新生成并添加 SSH key。
fork
fork 是指把远程的仓库拷贝一份到你的账户下,你可以随便修改 fork 的仓库,而不影响原始的项目。一般情况下,forks 用在以下两种情况:
- 提交你的修改到别人的项目里
- 把别人的项目作为自己想法的一个起点
watch
watch 一个仓库,你就可以看到关于本项目的最新的动态,诸如谁提交了什么、更新了什么等等。stay up-to-date with a specific project。
branch
branch 分支,它允许你在一个独立的通道上修改代码,而不会影响到 master,以降低风险。branch 的适用场景,两个:
- 当你想要同时开发多个特性,但,每个特性都开发了一半,而你又不想结束 master 分支时
- 或者,你想把代码分成两个独立的 branch,让彼此的开发和提交相互独立、互不影响
pull request
pull request 可以说是多人协作编码的核心。你提交一个 pull request,然后由作者从你的 fork 里合并到原 repo。
如果你是在 GitHub 上操作,你可以新建一个 pull request。它允许项目的大 boss 先看看你修改的,然后再决定是否要 merge,而且可以在 merge 之前给你点评论。它真的是一个很好的功能,经常被开源项目的开发者们使用。
Git Script
bash 是一个脚本语言,a scripting language called Bash。你可以使用 Bash scripts,在mac上的一个叫做 Terminal 的应用程序里。下面列出一些常用的命令,更多信息查看参考[2,3]。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Git 的配置
Git 使用一系列配置文件来保存你的自定义行为,它有三层配置,分别是系统、全局、本地。
- 首先,它会查找 /etc/gitconfig 文件,那里含有系统里每位用户及他们所拥有的仓库的配置值。 如果你传递 —system 选项给 git config,它就会读写该文件。【系统】
- 接着,git 的配置文件 ~/.gitconfig 文件(或者 ~/.config/git/config 文件)。 用 —global 选项让 Git 读写该文件。【全局】
- 最后,Git 会查找你正在操作的版本库对应的 Git 目录下的配置文件,此文件只对该版本库有效。【本地】
三层配置的优先级,是:系统 < 全局 < 本地
参考
Git 主页:https://git-scm.com/
Pro Git Book:https://git-scm.com/book/en/v2
tryGit:https://try.github.io/levels/1/challenges/1