快速掌握GIt,看这几篇就好了(一)

目录

一、Git简介

1. Git是什么

2. Git与SVN区别

2.1 去中心化

2.2 git仓库的任何一个拷贝都可以独立作为一个服务器来使用

2.3 在Git中文件有四种状态:

2.4 其它

2.5 直接记录快照,而非差异

2.6 直接记录快照,而非差异

2.7 git存在分支

Git工作流程

二,Gitee.com的基本使用

新建仓库

 添加文件

 添加文件的同时添加文件夹

 新建文件夹

 文件删除

删除整个项目

 三、Git基本命令

命令行配置 

常用命令(重点)

 在本地新建一个文件夹

 git clone

ll查看当前目录下的所有文件

 查看文件状态:git status

展示工作区及暂存区域中不同状态的文件。

untracked files:(未跟踪的文件)

 git add +文件名(将未跟踪的文件加入暂存区)

git add 文件名 加入暂存

 git commit -m '备注'(文件从暂存区提交到本地仓库)

 git push(将本地仓库的记录提交到远程仓库,输入gitee账号密码)

 git add .(未加入暂存的文件一并添加)

git reset HEAD

git pull

四,git冲突 


一、Git简介

1. Git是什么

   Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目

   版本控制器
   CVS/SVN/Git

   SVN
   客户端/服务器 C/S  B/S
   GIT
   客户端/代码托管网站(例如:github)

 注1:类似的代码托管网站还有:github/码云gitee/阿里云Code源码管理
   注2:类似的技术GitLab,但它与GitHub又有一定的区别
   GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。
   不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,
   你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

2. Git与SVN区别

2.1 去中心化

GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

2.2 git仓库的任何一个拷贝都可以独立作为一个服务器来使用

2.3 在Git中文件有四种状态:

未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。

2.4 其它

GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏

2.5 直接记录快照,而非差异

GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里

直接记录快照,而非差异

2.6 直接记录快照,而非差异

GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。

2.7 git存在分支

每个成员都是资源库

Git工作流程

本地电脑
    代码区:工作区间,放代码的地方
    暂存区:git所管理的暂存区域
    本地仓库:git所管理的本级硬盘区域
    
远程电脑
    远程仓库:GitHub、Gitee
    
    代码提交管理的过程
    代码区--->暂存区--->本地仓库--->远程仓库
    
    代码区--->暂存区--->本地仓库:这个过程是不需要联网的
    本地仓库--->远程仓库 是需要联网的

二,Gitee.com的基本使用

先登录码云账号

 仓库分为两种:公开的/私有的

公开的谁都能访问,不需要密码,而私有的需要密码才能访问

新建仓库

默认是私有的,只需要填入仓库名就行 ,点击创建

 创建完之后,我们需要初始化readme文件

将私有仓库设置为公开仓库

 往下滑,选择开源,勾选承诺,否则不能保存

 介绍也需要填写,否则也不能保存

 完了之后点击确定

 点击此处返回仓库初始界面

 添加文件

 此时仓库添加文件就成功了

 添加文件的同时添加文件夹

点击提交后,可以看到doc文件夹

 点进去可以看到刚刚创建的readme文件

 新建文件夹

 

注意:由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件 

 文件删除

点击你想删除的文件

 点击删除符号

 可以看见,已经没有Test文件了

删除整个项目

 点击删除仓库,需要输入当前删除的仓库名

 这里需要输入码云(Gitee)账号的密码

 验证成功后就删除成功了

  看下是否删除成功,跳到仓库主页,看下这个被删除的仓库是否还存在

 已经删除成功了。

 三、Git基本命令

命令行配置 

一般刚安装Git都要配置用户名和密码,因为你提交代码到本地仓库(上传代码到远程仓库)时会用到,如果没有没有配置,在你提交时它会提醒你的。但是,如果仅仅克隆(即下载)公有项目,你甚至不需要注册——刚刚我们创建的账户是为了以后 fork 其它项目,以及推送我们自己的修改。

   0.“Git bash here”打开命令窗口
   1.查看git的配置列表
     git config --list
     注1:如果没有配置东西,应该是空的。照着下面步骤配置完成后,你可以再试一下该命令,就会出现一系列配置信息
   2.设置用户名/邮箱/密码

 git config --global user.name "username"
 git config --global user.email "email"
 git config --global user.password "password"

常用命令(重点)

   git clone :将远程仓库clone到本地计算机。
   git status :展示工作区及暂存区域中不同状态的文件。
   git add :将内容从工作目录添加到暂存区。
   git commit :所有通过 git add 暂存的文件提交到本地仓库。
   git push :将本地仓库的记录提交到远程仓库。
   git reset HEAD <file> :从暂存区移除指定文件。
   git pull :拉取远程仓库的数据。

 准备工作:新建一个仓库和新建一个文件夹

这里小编以及准备好了,就不重复上诉操作了哈

 在本地新建一个文件夹

右键 将窗口打开

 git clone

 从仓库复制克隆路径

 SSH私库路径

不过本篇将会以公库来演示

 执行语句git clone(paste粘贴)

 按下回车键

可以看见, 成功生成本地仓库

  新建一个文件,自己负责的模块(编码)

ll查看当前目录下的所有文件

 查看文件状态:git status

展示工作区及暂存区域中不同状态的文件。

untracked files:(未跟踪的文件)

 git add +文件名(将未跟踪的文件加入暂存区)

git add 文件名 加入暂存

将内容从工作目录添加到暂存区。

 加入暂存区后再次查看 git status

 git commit -m '备注'(文件从暂存区提交到本地仓库)

 git push(将本地仓库的记录提交到远程仓库,输入gitee账号密码

输入用户名和密码

 git add .(未加入暂存的文件一并添加)

git reset HEAD

从暂存区移除指定文件。

git pull

拉取远程仓库的数据。 

项目经理:

  1.在某一个工作区间搭建环境,ssm能跑起来

  2.在该工作区间中执行git init 命令,标记该工作区间由git所管理

  3.在gitee/github中新建仓库

  4.通过git remote add origin url 将本地仓库与远程仓库关联

  5.将本地仓库与远程仓库进行文件同步

  6.执行git三部曲 add commit push 将搭建好的环境推送到远程仓库

技术人员:

 1:通过git clone将组长搭建好的环境克隆到本地,并且保证项目能运行

 2.测试组员修改/新增代码是能够推送到远程仓库的

    测试git add/commit/push是否有用

四,git冲突 

Git冲突与解决方法  
   1.git冲突的场景(课程中主要演示情景三)
     情景一:多个分支代码合并到一个分支时;
     情景二:多个分支向同一个远端分支推送代码时;
     情景三:同一分支,同一文件修改后的提交(即为多个程序员修改了同一个文件)
     实际上,push操作和pull操作其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支,所以这两个过程中也可能存在冲突。
 
   分别在同一项目的两个不同本地仓库修改a.txt并提交,则会报出以下错误:
   ! [rejected] master -> master (fetch first) error: failed to push some refs to ' 。。。'

   拒绝
   错误:无法推送某些引用

   解决方案:
   1.将代码copy出来
   2.先从远程仓库pull代码至本地,再修改冲突代码,       
     注1:git status查看仓库状态,会显示红色的错误提示消息“ both modified:   a.txt”
   3.打开a.txt,手动修改冲突部分的代码
     <<<<<<< HEAD
     ww add 18:42 from e:\temp\test1
     =======

     ls add 123 at 18:17 from d:\temp\test1
     >>>>>>> 63c73e5933bb7d3d2bed04b06c37a74602d65b2e
     注1:<<<<<<< HEAD  >>>>>>>之间的即为冲突的代码,手动修改即可
      
   3.依次add/commit/push代码至远程仓库
     commit执行完生,重新查看仓库状态git status,红色的错误提示消息“ both modified:   a.txt”
     已经没有,表示冲突已解决

按i键为编辑
按ESC退出
:wq保存


版权声明:本文为weixin_65211978原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。