Git学习与使用详解

Git学习

目录

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

2、版本控制简介

3、Git简介

4、Git命令行操作

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

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

协同修改

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

数据备份

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

版本管理

扫描二维码关注公众号,回复: 9545223 查看本文章

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

 

权限控制

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

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

历史记录

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

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

分支管理

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

 

2、版本控制简介

2.1 版本控制

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

2.2 版本控制工具

思想:版本控制

实现:版本控制工具

 

集中式版本控制工具:

CVS、SVN、VSS……

分布式版本控制工具:

Git、Mercurial、Bazaar、Darcs……

3、Git简介

3.1 git简史

3.2 Git的优势

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

3.3 Git安装

https://git-scm.com/downloads

下载exe  双击安装开始

1

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

3

4

5

6

7

8

9

10

3.4 Git结构

3.5 Git 和 代码托管中心

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

Ø 局域网环境下

           GitLab 服务器

Ø 外网环境下

        U+平台中的华为软开云

       GitHub

       码云

3.6 本地库和远程库

3.6.1 团队内部协作

3.6.2 跨团队协作

4、Git命令行操作

4.1 本地库初始化

命令:git  add

效果

 

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

4.2 设置签名

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

下图是Eclipse中git配置的信息

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

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

级别优先级

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

4.3  基本操作

4.3.1 状态查看

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

4.3.2 添加

git add [文件名]

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

首次是include

 4.3.3 提交

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

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

修改再此提交后的变化


4.3.4 查看历史记录

git log

多屏显示控制方式:

   空格向下翻页

   b向上翻页

   q 退出

 

  git log --pretty=oneline

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

git reflog 显示过去未来的信息

HEAD@{移动到当前版本需要多少步}

4.3.5 前进后退

本质

 

基于索引值操作[推荐]

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

git reset --hard *****

使用^符号:只能后退

git reset --hard HEAD^

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

 

使用~符号:只能后退

git reset --hard HEAD~n

注:表示后退n步

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

--soft参数

  仅仅再本地库移动HEAD指针

 

--mixed参数

  在本地库移动HEAD指针

  重置暂存区

 

--hard参数

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

 4.3.7 删除文件并找回

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

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

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

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

git reset --hard [指针位置]

 

4.3.8 比较文件差异

  • git diff [文件名]

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

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

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

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

4.4 分支管理

4.4.1 什么是分支?

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

 

4.4.2 分支的好处?

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

4.4.3 分支操作

  • 创建分支

            git branch [分支名]

  • 查看分支

            git branch -v

  • 切换分支

            git checkout [分支名]

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

  • 合并分支

 

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

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

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

第二步:执行merge 命令

git merge [有新内容分支名]

  • 解决冲突

        冲突的表现

冲突的解决

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

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

   第三步:git add [文件名]

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

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

 

 

 

 

 


发布了17 篇原创文章 · 获赞 42 · 访问量 9563

猜你喜欢

转载自blog.csdn.net/jiangjiaoyong/article/details/104513334