Git的安装与配置

前言

在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git。它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退的迹象。其实一般情况下,只需要掌握Git的几个常用命令即可,但是在使用的过程中难免会遇到各种复杂的需求,这时候经常需要搜索,非常麻烦,故总结了一下自己平常会用到的Git操作。本文根据团队实践记录Git入门指南和Git常用命令,文章中不仅记录了Git的搭建和使用教程,还参考了大量Git团队使用规范上的经验,希望大家可以结合自己团队的实际应用场景让Git协作优雅的落地。

Git是什么

Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

简单来说,Git 是一个管理你的「代码的历史记录」的工具。

“Git是目前世界上最先进的分布式版本控制系统”

SVN与Git的最主要的区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

“SVN没有后悔药,Git有一堆后悔药”

更多差异可以参考: SVN 与 Git 的区别

Git与Github的区别

Git是一个版本控制的工具,而Github有点类似于远程仓库,用于存放用Git管理的各种项目。

Git的安装与配置

  1. Git客户端下载地址: https://git-scm.com/ ,下载后安装。

  2. 配置环境变量 (新版的Git貌似可以自动设置环境变量)

    1. 鼠标在桌面右键“我的电脑”>属性>高级系统设置>

    2. 点击“环境变量”按钮

    3. 新建系统变量,变量名为 GIT_HOME,变量值为你刚刚安装的GIT所在目录(比如D:\Program Files\Git)

    4. 编辑系统Path变量 新增一向 %GIT_HOME%\bin (注意使用”;”半角分号来分割变量)

    5. 确定并保存

    6. 以上方法设置完成后,你可以新开一个CMD窗口,输入Git命令 ,如图即表示环境变量以及GIT客户端安装正确。

  3. 配置ssh公钥

    单单是安装完成了,GIT还不能直接使用,我们还需要配置一下公钥,不然会每次都让输入账号密码,或拒绝你登录。

    1. 首先启动一个Git Bash窗口(非Windows用户直接打开终端)
    2. 执行 cd ~/.ssh 跳转至存储ssh密钥的目录,用于检测是否已生成ssh密钥
      如果返回“… No such file or directory”,说明没有生成过SSH Key,直接进入第4步。否则进入第3步备份
    3. 备份 mkdir key_backup mv id_isa* key_backup
    4. git config --global user.name "demo" 设置你的用户名,替换demo为自己的名字,不是注册账号
    5. git config --global user.email "[email protected]" 引号内的内容替换为你自己的邮箱
    6. ssh-keygen -t rsa -C "[email protected]" 生成密钥 -C 为大写

      输出显示

      Generating public/private rsa key pair. Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):

      直接回车,不要修改默认路径

      Enter passphrase (empty for no passphrase): Enter same passphrase again:

      设置一个密码短语,在每次远程操作之前会要求输入此密码。觉得麻烦也可以直接回车,不设置。

      注意:输入密码不会有任何显示 直接输入就可以了

    7. 成功:

      Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa. Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub. The key fingerprint is: … …

    8. 提交公钥:

      1. 找到.ssh文件夹,用文本编辑器打开“id_rsa.pub”文件,复制内容到剪贴板。

      2. 打开 https://github.com/settings/ssh ,点击 New SSH Key 按钮,粘贴进去保存即可

    9. 测试:

      可以输入下面的命令,看看设置是否成功,[email protected]的部分不要修改:

      ssh -T [email protected]
      如果是下面的反馈:

      The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
      RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
      Are you sure you want to continue connecting (yes/no)?

      不要紧张,输入yes就好,然后会看到:

      Hi cnfeat! You’ve successfully authenticated, but GitHub does not provide shell access.

Git使用规范提醒

  • 使用Git过程中,必须通过创建分支进行开发,坚决禁止在主干分支上直接开发。review的同事有责任检查其他同事是否遵循分支规范。
  • 在Git中,默认是不会提交空目录的,如果想提交某个空目录到版本库中,需要在该目录下新建一个 .gitignore 的空白文件,就可以提交了
  • 把外部文件纳入到自己的 Git 分支来的时候一定要记得是先比对,确认所有修改都是自己修改的,然后再纳入。不然,容易出现代码回溯
  • 多人协作时,不要各自在自己的 Git 分支开发,然后发文件合并。正确的方法应该是开一个远程分支,然后一起在远程分支里协作。不然,容易出现代码回溯(即别人的代码被覆盖的情况)
  • 每个人提交代码是一定要 Git diff 看提交的东西是不是都是自己修改的。如果有不是自己修改的内容,很可能就是代码回溯
  • review 代码的时候如果看到有被删除掉的代码,一定要确实是否是写代码的同事自己删除的。如果不是,很可能就是代码回溯

Git客户端

Git客户端可以按个人习惯来选择,遵守团队协作中的Git规范标准才是更重要的

Git - https://git-scm.com/

使用Git必须安装,可以与TortoiseGit配合使用。熟悉了Git的各种操作指令后可以尝试单独使用

TortoiseGit - https://tortoisegit.org/

与TortoiseSVN操作类似,但是功能更加强大。

扩展阅读

git简明指南 - http://rogerdudler.github.io/git-guide/index.zh.html

常用 Git 命令清单 - http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

猴子都能懂的GIT入门 - http://backlogtool.com/git-guide/cn/

Git教程 - http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000