目录

一、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保存

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

  1. Git 看这一篇就够了

    作者 |码农田小齐 责编 | Carol 封图 | CSDN 下载自视觉中国 今天简单讲下 Git 的实现原理,知其所以然才能知其然:并且梳理了日常最常用的 12 个命令,分为三大类分享给你. 本文的 ...

  2. Git 看这一篇就够了!

    作者 | 小齐本齐 责编 | 屠敏 头图 | CSDN 下载自东方 IC 本文为码农田小齐投稿 知其所以然才能知其然,本文分享了 Git 的实现原理,并且梳理了日常最常用的 12 个命令,分为三大类分 ...

  3. Featuretools快速使用指南--看这一篇就够了

    Featuretools简单攻略 Featuretools介绍 Featuretools快速开始 Featuretools介绍 人工特性工程是一项冗长乏味的任务,并且受到人类想象力的限制--我们可以思 ...

  4. MySql快速复习,看这一篇就够了!

    Mysql 在这里记录了MySql的基本操作,感兴趣的小伙伴可以快速查看哦! 1. 基本操作 -- 基本操作 SHOW DATABASES; CREATE DATABASE IF NOT EXISTS ...

  5. 《Git篇》01.Git看这一篇就够了

    陈老老老板 说明:在整体的复习一遍知识,边复习边总结,基础真的重要,需要注意的地方都标红了,还有资源的分享. 一起加油.关于git的文章之前写过只有指令的这个更多的是扩展知识,比svn好用太多 视频链 ...

  6. jQuery快速掌握(看这一篇就够了)

    目录 jQuery 定义(更少的代码,做更多的事) 环境搭建 对象 对象分类 DOM对象转jQuery对象 jQuery对象转DOM对象 选择器 什么是选择器 基本选择器 表单选择器 过滤器 基本过滤 ...

  7. SpringMVC快速入门,看这一篇就够了!

    springmvc概述 Springmvc是spring框架的一个模块,spring和springmvc无需中间整合层整合. Springmvc是一个基于mvc的web框架 表现层的三大任务: URL ...

  8. 如何快速找到志同道合的人?看这一篇就够了

    如何快速找到志同道合的人?看这一篇就够了 一.前言 参加工作也有挺长一段时间了,一直以来自己也很希望可以真正为自己打拼一片天地,这应该也是大部分中产白领很希望做的事,有些人成功了,有些人在路上,而有些 ...

  9. Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库

    Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...

  10. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

最新文章

  1. linux 内核编译 错误 fatal error: linux/compiler-gcc6.h: No such file or directory
  2. oracle 输出重复记录,ORACLE 去除重复记录
  3. Delphi:ADOConnection连接SQLServer自动断网问题解决
  4. mysql o_Mysql数据类型
  5. sqlserver 查询某个时间段执行sql语句_为什么 SQL 查询不是先执行SELECT语句?
  6. python中break continue exit() pass区别
  7. 前端怎么自我介绍_未雨绸缪,小米前端实习面经
  8. 关于 flex 的资料
  9. 京东云魏伟:做最懂视频的云
  10. 国产浏览器 html5,老外评测国产浏览器 HTML5性能不俗
  11. 服务器dnf虚拟机多开吃显存吗,安卓模拟器多开对显卡有没有什么要求?
  12. 什么是软件验收测试?如何获取软件验收测试报告
  13. 0603-0605读书报告
  14. 贾俊平-第四章:数据的概括性度量
  15. 51单片机系列流水灯实现(附源码)
  16. 北邮 python 学堂在线动态请求页面内容爬取
  17. saber 2017 linux,DГ©jame contarte mГЎs encima de saber mujeres disadvantage plata
  18. 爬取博客园首页并定时发送到微信
  19. 华为防火墙图形登录配置
  20. 第四十三章 SQL函数 DATEDIFF

热门文章

  1. VC++界面编程之--实现一个画板并提供文字输入功能(MsPaint)
  2. Linux系统使用Windows系统字体的方法
  3. Markdown 扩展语法-特殊字符
  4. 基于java的出租车预约系统
  5. Taro环境部署和生成项目文件
  6. excel拼接字符串函数
  7. 深度学习基础——简单了解meta learning(来自李宏毅课程笔记)
  8. 芋道源码的周八(2018.03.04)
  9. 部署Kubernetes集群(二进制 v1.18.5版)
  10. 解套王指标源代码(主图)