Git学习

目录

1、版本控制工具应该具备的功能

2、版本控制简介

3、Git简介

4、Git命令行操作

Git学习与使用详解

  1. 安装git客户端     https://git-scm.com/downloads
  2. 注册GitHub账号    https://github.com/

1、版本控制工具应该具备的功能

协同修改

n 多人并行不悖的修改服务器端的同一个文件。

数据备份

n 不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

版本管理

n 在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。

 

权限控制

n 对团队中参与开发的人员进行权限控制。

n 对团队外开发者贡献的代码进行审核——Git 独有。

历史记录

n 查看修改人、修改时间、修改内容、日志信息。

n 将本地文件恢复到某一个历史状态。

分支管理

n 允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

 

2、版本控制简介

2.1 版本控制

工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代。

2.2 版本控制工具

思想:版本控制

实现:版本控制工具

 

集中式版本控制工具:

CVS、SVN、VSS……

Git学习与使用详解

分布式版本控制工具:

Git、Mercurial、Bazaar、Darcs……

Git学习与使用详解

3、Git简介

3.1 git简史

Git学习与使用详解

3.2 Git的优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与 Linux 命令全面兼容

3.3 Git安装

https://git-scm.com/downloads

下载exe  双击安装开始

1

Git学习与使用详解

2 安装到一个非中文的没有空格的目录下,点击next

3

Git学习与使用详解

4

Git学习与使用详解

5

Git学习与使用详解

6

Git学习与使用详解

7

Git学习与使用详解

8

Git学习与使用详解

9

Git学习与使用详解

10

Git学习与使用详解

3.4 Git结构

Git学习与使用详解

3.5 Git 和 代码托管中心

代码托管中心的任务:维护远程库

Ø 局域网环境下

           GitLab 服务器

Ø 外网环境下

        U+平台中的华为软开云

       GitHub

       码云

3.6 本地库和远程库

3.6.1 团队内部协作

Git学习与使用详解

3.6.2 跨团队协作

Git学习与使用详解

4、Git命令行操作

4.1 本地库初始化

命令:git  add

效果

Git学习与使用详解

Git学习与使用详解

Git学习与使用详解

 

Git学习与使用详解

Git学习与使用详解

注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除和胡乱修改。

4.2 设置签名

  • 形式
    1. 用户名:Jack
    2. Email地址:[email protected]
  • 作用: 区分不同开发人员的身份
  • 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
  • 命令
    1. 项目级别/仓库级别:仅在当前本地库范围内有效(也可以在开发工具中手动设置)
  •                 git config user.name Jack
  •                 git config user.email [email protected]
  •                 信息保存位置:./.git/config 文件

Git学习与使用详解

下图是Eclipse中git配置的信息

Git学习与使用详解

 

系统用户级别:登录当前操作系统的用户范围(一般使用就够了)

  1. git config --global user.name Jack_glb
  2. git config --global user.email [email protected]
  3. 信息保存位置: ~/.gitconfig  文件

Git学习与使用详解

 

级别优先级

  1. 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
  2. 如果只有系统用户级别的签名,就以系统用户级别的签名为准
  3. 二者都没有不允许

4.3  基本操作

4.3.1 状态查看

git status 查看工作区、缓冲区状态

Git学习与使用详解

Git学习与使用详解

4.3.2 添加

git add [文件名]

将工作区的 “新建/修改” 添加到暂存区,追踪文件

首次是include

Git学习与使用详解

 4.3.3 提交

git commit -m “需要提交的日志信息” [文件名]

将暂存区的内容提交到本地库

Git学习与使用详解

修改再此提交后的变化

Git学习与使用详解
4.3.4 查看历史记录

git log

Git学习与使用详解

Git学习与使用详解

多屏显示控制方式:

   空格向下翻页

   b向上翻页

   q 退出

 

  git log --pretty=oneline

Git学习与使用详解

git log --oneline 只显示过去的信息

Git学习与使用详解

git reflog 显示过去未来的信息

Git学习与使用详解

[email protected]{移动到当前版本需要多少步}

4.3.5 前进后退

本质

Git学习与使用详解

 

基于索引值操作[推荐]

Git学习与使用详解

Git学习与使用详解

Git学习与使用详解

git reset --hard [局部索引值]

git reset --hard *****

使用^符号:只能后退

git reset --hard HEAD^

注:一个^表示后退一步,n个表示后退n步

Git学习与使用详解

 

使用~符号:只能后退

git reset --hard HEAD~n

注:表示后退n步

Git学习与使用详解

4.3.6 reset命令的三个参数对比[hard、soft、mixed]

--soft参数

  仅仅再本地库移动HEAD指针

Git学习与使用详解

 

--mixed参数

  在本地库移动HEAD指针

  重置暂存区

Git学习与使用详解

 

--hard参数

  1. 在本地库移动HEAD指针
  2. 重置暂存区
  3. 重置工作区

 

 4.3.7 删除文件并找回

git只会做版本记录添加操作,哪怕删除了,也有记录

Git学习与使用详解

Git学习与使用详解

 

本地库中会有记录(除非删除本地库)

Git学习与使用详解

新建的文件添加本地库后才有记录,但是在做删除操作到暂存区就想恢复,见下图

如果在工作区就删除了,就不会有记录,没法找回;

git reset --hard [指针位置]

Git学习与使用详解

Git学习与使用详解

Git学习与使用详解

 

4.3.8 比较文件差异

  • git diff [文件名]

             将工作区中的文件和暂存区进行比较

  • git diff [本地库中历史版本] [文件名]

             将工作区中的文件和本地库历史记录比较

Git学习与使用详解

  • git diff
    不带文件名比较多个文件

Git学习与使用详解

4.4 分支管理

4.4.1 什么是分支?

在版本控制过程中,使用多条线同时推进多个任务。

Git学习与使用详解

 

4.4.2 分支的好处?

  • 同时并行推进多个功能开发,提高开发效率
  • 多个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4.4.3 分支操作

  • 创建分支

            git branch [分支名]

  • 查看分支

            git branch -v

  • 切换分支

            git checkout [分支名]

Git学习与使用详解

当前的分支内容都是在同一线

  • 合并分支

Git学习与使用详解

 

第一步:切换到接受修改的分支(被合并,增加新内容)上

git checkout [切换到被合并的分支上]

开发/修改内容,切换到主干上,开始合并分支内容

第二步:执行merge 命令

git merge [有新内容分支名]

Git学习与使用详解

  • 解决冲突

        冲突的表现

Git学习与使用详解

冲突的解决

   第一步:编辑文件,删除特殊符号

   第二步:把文件修改到满意的程度,保存退出

   第三步:git add [文件名]

   第四步:git commit -m “日志信息”

注意: 此时commit 一定不能带具体文件名

Git学习与使用详解

 

 

 

 

 


相关文章:

  • 2021-11-23
  • 2021-07-06
  • 2022-02-07
  • 2021-05-02
  • 2021-04-15
猜你喜欢
  • 2021-04-12
  • 2022-02-09
  • 2022-02-07
  • 2022-01-04
  • 2021-10-21
  • 2022-12-23
  • 2021-07-10
相关资源
相似解决方案