sunmaobin / sunmaobin.github.io

blog
https://github.com/sunmaobin/sunmaobin.github.io
174 stars 11 forks source link

Git入门介绍 #1

Open sunmaobin opened 7 years ago

sunmaobin commented 7 years ago

本文主要从Git原理、常用命令、分支管理等方面进行简单介绍说明。

Git 和 Svn 的区别

  1. Git是分布式的管理,而Svn不是
    • Git的这个特性可以保证,每个使用Git的人员,本地都有一个独立的库跟远端相同。这样做的好处是,如果哪天断网了,或者在公司Clone的代码到家里了。这时候依然可以Add,Commit,依然可以查看版本记录。
  2. Git的分支管理和Svn有很大区别
    • Git的分支之间可以随意合并、切换,而Svn的分支就相当于是一个额外的目录。
    • Git的分支使用要比Svn更加有优势,更加适合于快速开发、分块交付的工作。
  3. Git数据存储方式和Svn大不一样
    • 这主要表现在Git一个仓库目录下有一个.git隐藏目录,用于存储git的数据信息,而仓库内部的所有文件就没有了.git临时文件。这样做的好处是,你可以随意的拷贝/挪动,而不需要考虑隐藏文件占很大的磁盘。而Svn是每个目录下都有一个.svn目录,用于控制版本和数据信息。有时候挪动了整个目录,切换了Svn的地址,需要clean等操作,非常麻烦,而且占的体积非常大。
    • 当然Git的这种存储有更大的作用,就是他实际存储了整个库到本地了,所以平时更新提交数据非常快。
    • 更多数据存储,参考:Git是如何存储对象的?

Git 架构

注:此图片来自阮一峰博客

Git 安装配置

  1. 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

  2. 下载Git客户端并安装:

    • 点击下载
    • 安装时除以下步骤选择最后一个外,其他都可以默认。

  3. 安装后进行如下操作:

    • 在E盘或者F盘新建一个目录叫:gitlab
    • 右键gitlab目录,运行:Git Bash

  4. 在命令窗口分别执行以下命令:
    注意:每个命令,一直回车即可。

    git config --global user.name "<your username>"
    git config --global user.email "<your email>"
    ssh-keygen -t rsa -C "<your email>"
  5. 登录git网页版

    • 地址:http://git.gdd:8889/
    • 用户名:自己的英文名字
    • 默认密码:88888888
    • 点击右上角的用户头像,进入个人设置

    • 点击左侧的:SSH Keys

    • 点击右侧的:Add SSH Key

    • 进入Add an SSH Key窗口

    • 用记事本打开文件:C:\Users\Administrator.ssh\id_rsa.pub
    • 拷贝id_rsa.pub中的内容,到上面的窗口,并保存

至此,git的环境已经配置好,现在查看自己有哪些git仓库目录。

  1. 在git的首页,能看到右侧有一些Project,这是你有权访问的一些项目。

  2. 比如:点击Administrator / gdd-doc 进入这项目后,点击SSH,并复制URLgit@git.gdd:root/gdd-doc.git

  3. 在刚才的Git Bash 窗口,执行如下命令并回车,开始下载gdd-doc的文件

    • 注意:第一次运行时,可能需要确认,直接输入:yes,回车即可。
  4. 文件下载完成后,就可以看到所有的项目资料了。

到此为止,git的安装和初次使用就结束了,还要进行其他的学习和操作,可以参考本文档其他章节,后者以下文档:

Git 常用命令

获取文件

  1. git clone url 克隆一个仓库
  2. git fetch origin 更新本地仓库文件跟远端一致
  3. git branch 查看本地有哪些分支
  4. git branch -r 查看远端有哪些分支
  5. git branch -a 查看本地和远端所有分支
  6. git branch -D feature1 删除本地分支feature1,远端仓库一般不建议删除(管理员除外)
  7. git checkout develop 下载并切花到develop分支(如果develop分支本地已有,则直接切换过去)
  8. git checkout -b feature1 以当前分支为准,创建一个新的分支,名字叫feature1,并切换到feature1分支
  9. git pull origin develop 从远端develop分支更新内容到工作区

提交文件

  1. git status 查看改动的文件(或者打开GUI查看)
  2. git add <file> 提交文件
  3. git add -A 提交改动的所有文件
  4. git commit -m 'comment' 添加评论提交代码到本地仓库
  5. git push origin develop 提交代码到develop分支(注意:前提示当前分支也是develop分支,保持一致。)

打标签

  1. git tag 查看所有tag
  2. git tag tag1 将当前分支的当前代码打一个标签,名称叫tag1
  3. git push origin tag1 将打好的标签tag1提交到远端
  4. git checkout tag1 临时切换到啊tag1标签上
  5. git checkout -b feature2 tag1tag1标签上创建一个分支并feature1并切换到这个分支上

其它命令

  1. git merge --no-ff feature1 当前分支合并feature1分支,注意: --no-ff 要加。
  2. git log 查看提交日志,按:q退出
  3. git reset --hard 'hash' 硬性回退到之前的一个版本。hash是每个版本有一个hash码。

Git GUI工具

稍后补充

参考

  1. 常用 Git 命令清单-阮一峰:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
  2. 我的git笔记-颜海镜:http://yanhaijing.com/git/2014/11/01/my-git-note/