美文网首页
Git——内容大纲

Git——内容大纲

作者: 四喜汤圆 | 来源:发表于2019-04-09 21:29 被阅读0次

    一、作用

    • 可以建立仓库,保存资料(代码或其他)
    • 可多人协作开发
    • 记录修改历史
    • 分支:可因不同情景分开开发
    • 标签:记录重要里程碑以便参照

    二、是什么

    世界上最先进的分布式版本控制系统,基于 C 语言开发。

    三、使用

    1. 相关概念

    (1)集中式 VS 分布式
    日常生活场景中需要版本控制,而 Git 是一种版本控制工具。

    版本控制工具分为分布式(以 Git 为代表)和集中式(以 SVN 为代表),下面从以下几个方面进行比较。

    a) 版本库

    • 集中式
      有中央服务器的概念,版本库存储在中央服务器上。

    • 分布式
      没有中央服务器,每个人的电脑上都有完整的版本库。

    Q:那么如何协作呢?
    A:比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

    在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,上面有一个中央仓库,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

    b) 网络依赖

    • 集中式
      网络不连通的话,个人电脑无法从中央服务器更新代码。再者,如果网速慢的话,提交、下载代码等得难受。

    • 分布式
      每个人的电脑都有完整的版本库,这样,工作的时候就不需要联网了。

    c)安全性

    • 集中式
      如果中央服务器崩溃了,那版本库也崩溃了。

    • 分布式
      一台电脑崩溃了,直接从另一台电脑上拷贝版本库过来即可。

    (2)工作区、暂存区和版本库
    工作区(working tree 或 working directory)、暂存区(stage 或 index)、本地仓库、远程仓库。

    四者关系 廖雪峰老师的示意图

    2. 常用操作

    (1) 创建仓库

    一个 git 仓库中有.git目录,这个目录是 Git 来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

    ① 把本地文件夹初始化为仓库

    $ git init
    Initialized empty Git repository in F:/learngit/.git/
    

    ② 把远程仓库 clone 到本地

    $ git clone git@github.com:SiXiWanZi/SSHTest.git
    

    (2)向 GitHub 提交代码
    Git——向GitHub提交代码

    (3) Git 中的后悔药
    Git——Git中的后悔药

    (4)分支管理
    Git——Git分支管理

    3. 常用命令

    (1)git log
    显示从近到远的提交历史。

    使用git log --pretty=oneline将提交日志简化。

    (2) git reflog
    查看命令历史,可记录每一次命令。

    (3)git diff

    同一分支下:

    • 比较工作区和暂存区
    $ git diff
    

    现有两个文件 README.md 和 LICENSE.md,它们都已被添加到了暂存区。分别修改两个两个文件。然后执行指令$ git diff,结果如下,罗列了所有文件的比较情况。

    • 比较工作区和本地版本库

    ① 工作区和本地仓库最新版本

    $ git diff HEAD
    

    ② 工作区和本地仓库指定版本

    $ git diff <commitId>
    
    • 比较暂存区和本地版本库

    ① 暂存区和本地仓库最新版本

    $ git diff --cached
    

    ② 暂存区和本地仓库指定版本

    $ git diff --cached <commitId>
    
    • 比较本地版本库中不同版本
    $ git diff <commitId1> <commitId2>
    

    不同分支下:

    • 比较不同分支下的区别
    $ git diff <branch1> <branch2>
    

    (4)配置用户名邮箱
    Git 根据用户名和邮箱提交记录,每进行一次 commit 都会产生一条 log,这条 log 标记了提交人的姓名与邮箱,以便其他人方便地查看与联系提交人。所以提交代码之前要设置好自己的姓名和邮箱
    git config --global user.name // 配置全局的用户名
    git config --global user.email// 配置全局的邮箱
    git config --list // 查看已有的配置信息

    (5)关于界面的配置
    git config --global color.ui true
    git config --global core.quotepath false// 显示中文文件名

    参考文献

    git 官方文档
    git flow的使用
    廖雪峰的 Git 教程
    Git diff 常见用法
    图解 Git

    相关文章

      网友评论

          本文标题:Git——内容大纲

          本文链接:https://www.haomeiwen.com/subject/eminvqtx.html