本文主要从 Git 原理、常用命令、分支管理等方面进行简单介绍说明。
Git 和 Svn 的区别
- Git 是分布式的管理,而 Svn 不是
- Git 的这个特性可以保证,每个使用 Git 的人员,本地都有一个独立的库跟远端相同。这样做的好处是,如果哪天断网了,或者在公司 Clone 的代码到家里了。这时候依然可以 Add,Commit,依然可以查看版本记录。
- Git 的分支管理和 Svn 有很大区别
- Git 的分支之间可以随意合并、切换,而 Svn 的分支就相当于是一个额外的目录。
- Git 的分支使用要比 Svn 更加有优势,更加适合于快速开发、分块交付的工作。
- Git 数据存储方式和 Svn 大不一样
- 这主要表现在 Git 一个仓库目录下有一个.git 隐藏目录,用于存储 git 的数据信息,而仓库内部的所有文件就没有了.git 临时文件。这样做的好处是,你可以随意的拷贝/挪动,而不需要考虑隐藏文件占很大的磁盘。而 Svn 是每个目录下都有一个.svn 目录,用于控制版本和数据信息。有时候挪动了整个目录,切换了 Svn 的地址,需要 clean 等操作,非常麻烦,而且占的体积非常大。
- 当然 Git 的这种存储有更大的作用,就是他实际存储了整个库到本地了,所以平时更新提交数据非常快。
- 更多数据存储,参考: Git 是如何存储对象的?
Git 架构
注:此图片来自阮一峰博客
Git 安装配置
host 中添加以下内容:
host 所在目录:C:\Windows\System32\drivers\etc\
192.168.1.68 git.gdd
192.168.1.68 jenkins.gdd
192.168.1.68 mysql.gdd
192.168.1.68 server.gdd
下载 Git 客户端并安装:
- 点击下载
- 安装时除以下步骤选择最后一个外,其他都可以默认。
安装后进行如下操作:
- 在 E 盘或者 F 盘新建一个目录叫:gitlab
- 右键 gitlab 目录,运行:Git Bash
在命令窗口分别执行以下命令:
注意:每个命令,一直回车即可。
git config --global user.name "<your username>"
git config --global user.email "<your email>"
ssh-keygen -t rsa -C "<your email>"
登录 git 网页版
- 地址: http://git.gdd:8889/
- 用户名:自己的英文名字
- 默认密码:88888888
- 点击右上角的用户头像,进入个人设置
- 用记事本打开文件:C:\Users\Administrator.ssh\id_rsa.pub
- 拷贝 id_rsa.pub 中的内容,到上面的窗口,并保存
至此,git 的环境已经配置好,现在查看自己有哪些 git 仓库目录。
在 git 的首页,能看到右侧有一些 Project,这是你有权访问的一些项目。
比如:点击 Administrator / gdd-doc 进入这项目后,点击 SSH,并复制 URL git@git.gdd:root/gdd-doc.git
在刚才的 Git Bash 窗口,执行如下命令并回车,开始下载 gdd-doc 的文件
- 注意:第一次运行时,可能需要确认,直接输入:yes,回车即可。
文件下载完成后,就可以看到所有的项目资料了。
到此为止,git 的安装和初次使用就结束了,还要进行其他的学习和操作,可以参考本文档其他章节,后者以下文档:
- git - Book(link:http://git-scm.com/book/zh/v1)
- git - 简易指南(link:http://www.bootcss.com/p/git-guide/)
- git - Pro GIT(link:http://iissnan.com/progit/)
Git 常用命令
获取文件
- git clone url 克隆一个仓库
- git fetch origin 更新本地仓库文件跟远端一致
- git branch 查看本地有哪些分支
- git branch -r 查看远端有哪些分支
- git branch -a 查看本地和远端所有分支
- git branch -D feature1 删除本地分支 feature1 ,远端仓库一般不建议删除(管理员除外)
- git checkout develop 下载并切花到 develop 分支(如果 develop 分支本地已有,则直接切换过去)
- git checkout -b feature1 以当前分支为准,创建一个新的分支,名字叫 feature1 ,并切换到 feature1 分支
- git pull origin develop 从远端 develop 分支更新内容到工作区
提交文件
- git status 查看改动的文件(或者打开 GUI 查看)
- git add <file> 提交文件
- git add -A 提交改动的所有文件
- git commit -m 'comment' 添加评论提交代码到本地仓库
- git push origin develop 提交代码到 develop 分支(**注意:**前提示当前分支也是 develop 分支,保持一致。)
打标签
- git tag 查看所有 tag
- git tag tag1 将当前分支的当前代码打一个标签,名称叫 tag1
- git push origin tag1 将打好的标签 tag1 提交到远端
- git checkout tag1 临时切换到啊 tag1 标签上
- git checkout -b feature2 tag1 从 tag1 标签上创建一个分支并 feature1 并切换到这个分支上
其它命令
- git merge --no-ff feature1 当前分支合并 feature1 分支,注意: --no-ff 要加。
- git log 查看提交日志,按: q 退出
- git reset --hard 'hash' 硬性回退到之前的一个版本。 hash 是每个版本有一个 hash 码。