作者:禅与计算机程序设计艺术
1.简介
Git是什么?
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git鼓励精益求精的工作方式,高效沟通能力,能够适应跨越短期、中长期变更的需求;同时也是世界上最流行的版本管理工具之一。
为什么要学习Git?
由于Git的独特特性,它可以帮助开发者轻松实现以下几点功能:
- 提供快照备份,记录每次提交的差异,解决冲突,可以有效防止文件丢失或者数据遗漏;
- 智能合并,通过对文件的改动进行分析并自动进行合并,避免了手动合并的麻烦,降低了出错率;
- 分支管理,允许多人在同一个仓库里协作开发,每个人都可以在自己的分支上工作,避免互相干扰;
- GitHub/Bitbucket等托管平台支持,各种平台上的开源项目都可以借助Git实现版本控制。 因此,学习Git有如下几方面优势:
- 技能提升:学习Git可以帮助你进一步提升你的编程技能,掌握Git之后,你可以利用它进行自动化构建,版本管理,自动部署等高级操作;
- 锻炼团队合作精神:Git作为分布式版本控制系统,可以让多个开发人员协同工作,分享代码,解决冲突,提高协作效率;
- 兴趣增加:学习Git可以提升你的编程兴趣,尝试不同的开发模式,探索不同的开发流程;
- 社交价值:了解Git背后的设计理念,你会发现很多有意思的特性,创造力,实用性;
- 兼容性好:Git兼容各类操作系统及硬件,可以运行于所有大小型项目,也可以在虚拟机环境下运行。
2.基本概念术语说明
Git使用的是一种图形化界面,所以在开始学习之前需要先熟悉一些Git的基本命令。本节将对这些命令进行介绍。2.1 Git基础知识
2.1.1 命令与工作区
命令:Git提供的操作指令集合,可以通过输入命令来实现对Git仓库的各种操作。 工作区(Working Directory):就是电脑中的某个目录,存放着你正在编辑的文件。 暂存区(Stage):暂存区一般称为“索引”,是Git用来保存当前已跟踪文件的列表。 版本库(Repository):Git是基于版本库的版本控制系统。版本库中保存了所有的版本历史记录。 暂存区和版本库之间的关系:暂存区是用户修改了但还没有提交到本地仓库的地方,而版本库则是已提交到本地仓库的地方。
2.1.2 基本配置
设置用户名和邮箱
首先,设置用户名和邮箱。运行如下命令:
git config --global user.name "your name"
git config --global user.email "your email address"
其中,--global
参数表示全局生效,即当前用户的所有仓库都会默认使用这个用户名和邮箱。如果只想针对当前仓库生效,可省略此参数。
查看配置信息
查看配置信息可以使用如下命令:
git config --list
修改配置信息
如需修改配置信息,可使用如下命令:
git config [--local|--global|--system] section.key value
其中,section
表示配置的分组,比如user
,alias
。key
表示具体配置项的名称,比如name
,email
。value
表示具体配置项的值。
2.1.3 基本用法
初始化仓库
初始化仓库时,需指定仓库的路径。如果仓库不存在,则会新建一个空的仓库。运行如下命令:
git init [path]
例如:
git init /Users/michael/Desktop/test
添加文件到缓存区
添加文件到缓存区后,不会真正执行commit操作,仅仅标记该文件为待提交状态。运行如下命令:
git add filename(s)
例如:
git add test.txt
查看状态
查看当前缓存区的文件状态,包括已跟踪文件(Tracked)、未跟踪文件(Untracked)和暂存区的文件(Staged)。运行如下命令:
git status
提交更改
将暂存区的文件提交到版本库。运行如下命令:
git commit -m "message"
-m
参数表示添加提交注释。
拉取远程仓库
拉取远程仓库的代码到本地仓库。运行如下命令:
git pull origin master
其中,origin
表示远程仓库的名字,master
表示分支名。
推送本地仓库
推送本地仓库的内容到远程仓库。运行如下命令:
git push origin master
其中,origin
表示远程仓库的名字,master
表示分支名。
2.2 Git分支管理
分支:Git允许创建属于自己的独立分支,从而可以自由试错,不影响其他开发者的代码。
2.2.1 创建分支
创建一个新分支,运行如下命令:
git branch <branch-name>
例如:
git branch dev
2.2.2 切换分支
切换到指定分支,运行如下命令:
git checkout <branch-name>
例如:
git checkout master
2.2.3 删除分支
删除指定的分支,运行如下命令:
git branch -d <branch-name>
2.2.4 合并分支
把指定分支合并到当前分支,运行如下命令:
git merge <branch-name>
例如:
git merge dev
2.3 Git远程仓库管理
远程仓库:Git支持创建远程仓库,可以在不同机器间共享代码。
2.3.1 配置远程仓库
配置远程仓库的地址,运行如下命令:
git remote add origin git@server-address:/path/to/repository.git
其中,origin
表示远程仓库的别名,可以自定义。git@server-address
表示服务器地址,path/to/repository.git
表示远程仓库的路径。
2.3.2 推送本地分支到远程仓库
将本地分支推送到远程仓库,运行如下命令:
git push -u origin <branch-name>
-u
参数表示将本地分支和远程分支关联,之后就可以通过简写来引用远程分支。
2.3.3 从远程仓库拉取分支
从远程仓库拉取分支到本地,运行如下命令:
git fetch origin <branch-name>:<local-branch-name>
其中,<branch-name>
表示远程分支的名字,<local-branch-name>
表示本地分支的名字。
2.3.4 查看远程仓库
查看远程仓库的信息,运行如下命令:
git remote show origin