git的安装
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
Git 各平台安装包下载地址为:http://git-scm.com/downloads
git配置
Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
/etc/gitconfig
文件:系统中对所有用户都普遍适用的配置。若使用git config
时用--system
选项,读写的就是这个文件。~/.gitconfig
文件:用户目录下的配置文件只适用于该用户。若使用git config
时用--global
选项,读写的就是这个文件。- 当前项目的 Git 目录中的配置文件(也就是工作目录中的
.git/config
文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config
里的配置会覆盖/etc/gitconfig
中的同名变量。
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:\Documents and Settings\$USER。
此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。
Git 工作区、暂存区和版本库
在了解 Git 的基本操作之前,我们先来了解 Git 工作区、暂存区和版本库的概念在 Git 中的文件有三种状态:已提交(committed): 表示数据已经安全的保存在本地数据库中;已修改(modified): 表示修改了文件,但还没保存到数据库中;已暂存(staged): 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中,由此也引入了 Git 项目的三个工作区域的概念:
工作区: 就是项目文件所在的目录
暂存区: stage 或 index。一般存放在 .git/index 文件中,所以我们把暂存区有时也叫作索引
版本库: 工作区下隐藏目录 .git,这里记录着仓库的版本信息和历史记录
Git 仓库创建及基本操作
创建 Git 仓库
git仓库可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以还原
创建并初始化仓库
git init 是用来初始化一个 Git 仓库的
csharp复制代码git init
该命令会在当前目录下创建一个 .git 的目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件。这个时候只是对仓库做了初始化的操作,假如该目录下原本就有文件,需要对这些文件进行版本控制,可以通过 git add <file> 跟踪这些文件并提交 git commit -m <message>
sql复制代码git add .
git commit -m 'initial project version'
上面是把目录下的所有文件提交到了仓库中
克隆现有的仓库
如果想获取现有 Git 仓库的拷贝,需要用 git clone <repo> 或 git clone <repo> <directory>
repo 是仓库地址,directory 是本地仓库的名称,即目录名称
如下面我要克隆 github 上的一个仓库,并制定本地仓库的名称为 mylibname
awk复制代码git clone https://github.com/xxxx/xxxx mylibname
Git 基本操作
Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。
本章将对有关创建与提交你的项目快照的命令作介绍。
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
创建仓库命令
下图列出了 git 创建仓库的命令:
提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下图列出了有关创建与提交你的项目的快照的命令:
提交日志
远程操作
分支管理
在实际工作中,当你需要完成某个需要,而这个需求你可能需要1天以上才能完成,这时你可以新建一个分支,在分支上的任何改动都是不影响其他分支的,当你完成了需求之后,再合并分支
命令:
git branch 列出分支,当前分支前面会标一个*号
git branch <branchname> 创建分支
git checkout <branchname> 切换分支
git checkout -b <branchname> 创建并切换分支
git merge 合并分支
git branch -d <branchname> 删除分支
分支的创建和合并
创建分支
mipsasm复制代码git branch <branchname>
git checkout <branchname>
想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令,等同于上面两个命令
haxe复制代码git checkout -b newb
git branch 列出分支,当前分支前面会标一个*号
合并分支
一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支
使用 git merge 命令将任何分支合并到当前分支中去
假如我们现在对新的分支内容有了修改,现在要合并到主分支中
合并冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
解决冲突就是把 Git 合并失败的文件手动编辑为我们希望的内容,再提交
Git 查看提交历史
Git 提交历史一般常用两个命令:
git log
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
- git log - 查看历史提交记录。
- git blame <file> - 以列表形式查看指定文件的历史修改记录。