此课程会划分为10个小结进行讲述

  • 1 安装和配置
  • 2 创建仓库
  • 3 基本用法
  • 4 三种状态
  • 5 标签 tag
  • 6 分支 branch
  • 7 合并分支
  • 8 远程仓库
  • 9 如何多人远程合作

git下载安装验证
一、下载、安装、验证
1、git官网:
https://git-scm.com/downloads

2、安装及配置
2-1 一路下一步
2-2 验证:在命令行输入

2-3 配置git config --global(全局)、查看配置git config --list

git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --list

码云配置方案:

git config --global user.name "gb_90"
git config --global user.email "13396492261@63.com"
git config --list

GitHub配置方案:

git config --global user.name "gb-heima"
git config --global user.email "754263923@qq.com"
git config --list

idea terminal设置(关键步骤):

查看版本:

3、在idea中初始化仓库 创建仓库(2种本地创建和远程拉取)
3-1 初始化仓库
方式1:进入目录git init
创建test1目录,进入test1执行git init:

mkdir test1
cd test1/
git init


方式2:git init 目录名

cd ..
git init test2


查看初始化仓库文件:

cd test2
ls -la


方式3,远程拉取
git clone +远程仓库地址(例如:https://github.com/biaoyansu/15.x.git)

git clone git@gitee.com:gb_90/gblfy.git



备注:远程项目重命名
git clone +远程仓库地址 + 项目新的名称

git clone git@gitee.com:gb_90/gblfy.git test3



这样就把远程仓库的名称更新为test3了,内容不改变

查看目录下的文件
windows:dir

dir


linux:ll 或者ls -a 显示所有文件包括隐藏

ls -la


二、基本用法:
1、编码设置:
提交信息编码

git config --global i18n.commitencoding utf-8


输出log输出的编码

git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8


查看设置的信息:

git config --list



2、查看仓库状态: git status
创建gblfy目录->>>j进入目录->>>初始化git仓库->>>查看仓库状态->>>未新增新文件

cd gblfy/
git init
git status


3、将所有修改添加到暂存区: git add .
创建gblfy目录->>>j进入目录->>>初始化git仓库->>>查看仓库状态->>>新增gblfy.txt新文件->>>添加内容”gblfy文件第一次提交,添加内容”

git add .


4、提交版本: git commit -am “描述内容”

git commit -m”gblfy文件第一次秀,添加内容”


5、查看版本记录: git log

git log


6、穿越到制定的历史节点 git checkout xxx
在gblfy.txt->>>添加”穿越历史节点第一次测试”->>>将gblfy.txt添加至暂存区->>>将gblfy.txt从至暂存区提交到本地仓库

git add .
git commit -m”穿越历史节点,第一次测试”


查看提交的记录:

git log


穿越历史节点前:

git checkout 5db6e7c9


穿越历史节点后:

备注:制作后悔药流程(3步走)

1、修改内容
2、git add . 将本次修改的文件,添加至暂存区
3、git commit -am"本次修改的文件内容"


git add . git commit -m”演示制作互殴会要流程3步走”
回到刚才编辑的版本 git checkout -

git checkout -


三种状态
modified已修改
stated已暂存
commited已提交
1、git节点组成基本3个阶段:
modify(修改文件)
git add . 添加到暂存区
git commit -am “描述提交内容”
案例:
在gblfy.txt 文件中+A

查看文件状态:
git status

将文件添加至暂存区

git add .


将gblfy.txt(新增A)文件提交到本地仓库:

git commit -m”gblfy.txt文件+A测试”


3、查看版本记录+修改的内容 git log -p

git add .
git commit -m”gblfy.txt文件 add ABCD”



4、案例——对于一个文件修改多次:

例如:新建1.txt->>>>在1.txt中,添加了A ->>>>将A添加至暂存区:

touch 1.txt


git add 1.txt


git add 1.txt 在未提交之前,又添加了B

进行提交:
git commit -m”未提交之前,添加B仓库只有A,没有B”


这种情况,仓库里git add 1.txt中只有内容A,原因是,添加B操作后,没有将B添加到暂存区
之后,又一次添加了C 和D

git status


针对一个文件修改多次这种情况,可以依次添加到暂存区,最后,一起提交:

git commit -m”将BCD添加至暂存区,一起提交”



总结:后悔药要经过3个阶段
modify(修改文件)
git add . 添加到暂存区
git commit -am “描述提交内容”
四、标签tag
新建test目->>>初始化git本地仓库->>>新建2.txt->>>将添加暂存区->>>并提交到本地仓库:

mkdir test


cd test/
git init

touch 2.txt
git add .

git commit -m”初始化仓库”


1、查看版本信息前一条信息:git log --oneline --decorate

git log --oneline --decorate


附注标签:
git tag -a 标签名 -m “备注”

git tag -a v1.0 -m”第一版完成”


2、列出所有标签(git tag)

git log --oneline

git tag


3、打标签一般以最近的节点打标签,如果选择一个历史节点打标签操作如下:
案例演示1:
提交3次,第一次和第三次分别建立标签v1.0 v2.0,这是情况是:
提交3次
有v1.0 v2.0 二个标签
进行以下操作:
在v2.0节点上,回到第二次提交的节点(通过id号),建立标签,之后,返回v2.0节点,查看所有标签
有v1.0 v1.5 v2.0 三个标签
在上面的第一个标签的基础上开始演示:
第一步:在test本地仓库下2.txt文件中添加”开始写第二版书籍”内容

第二步:将2.txt文件添加在暂存区,并提交到本地仓库

git add .
git commit -m”测试穿越历史节点添加标签01”


第三步:在test本地仓库下2.txt文件中添加”第二版书籍中期”内容

第四步:将2.txt文件添加在暂存区,并提交到本地仓库:

git add .
git commit -m”测试穿越历史节点添加标签02”


第五步:在第三次提交的基础上,建立标签v2.0

git tag -a v2.0 -m”在第二版中期,新建标签v2..0”


查看所有标签:

git tag


查看历史记录

git log --oneline


第六步:回到9834743节点

git checkout 9834743


回到9834743节点后,的文件显示的内容

第七步:在9834743节点上新增标签v1.5

git tag -a v1.5 -m”在第二版中期,回到9834743这个历史节点的新增标签v1.5”

第八步:回到v2.0节点

git checkout cd3bfe


回到v2.0节点后文件显示的内容:

查看所有标签:

git tag


案例完成!!!
简单方法:

git tag -a 标签 -am “描述阶段内容” +历史节点号

例如:

git tag -a v0.5 -m”历史节点添加tag” 801be2a


案例演示2:
在上面基础上,提交两次:

git add .
git commit -m”给历史节点添加标签01”


git add .
git commit -m “给历史节点添加标签02”

git tag -a v3.0 -m”测试穿越历史节点添加标签03”

git log --oneline

git tag -a v2.5 -m”给历史节点添加tag” ac1f4be
git log --oneline


列出所有tag:

git tag


4、查看某个标签的详细信息:git show 标签名

git show v2.0


5、回溯至标签所在的提交:git checkout 标签名
查看有哪些标签和现在所在标签:

git tag

git checkout v2.0


五、分支branch(默认分支master)
就是在主分支master上面,分出的几条分支。
例如:一本书,主线是主人公不是富有的,在主线上分出一条故事剧情发展线,主人公变更富有的。
分支名称可以自定义,就好像在不同分支平行的事件,可以随意切换,非常方便。

git init test

cd test/
touch gblfy.txt


git add .
git commit -m”第一章”


git add .
git commit -m”第二章”


现在master节点有2个节点
查看有哪些节点?

git log --oneline


git add .

git commit -m”主人公not rich”


提交之后查看节点:

git log --oneline


创建分支:git branch 分支名:

git checkout rich

git log --oneline --all

git add .
git commit -m”在rich分支上修改gblfy.txt”

git log  --oneline --all


git add .
git commit -m”rich主人公+美女”

git log --oneline --all


在rich节点上,切换到master,回到开始分支出来的master节点:

git checkout master



git add .
git commit -m”在master上故事情节继续发展”


在master上有4个节点,也就是4个版本:

git log --oneline


显示所有历史记录:git log --all
图示全部历史记录(建议使用,如下图所示):git log --oneline --graph --all

git log --oneline --graph --all


分支有什么用?
比如开发一个应用,在master分支上开发了v1 v2 v3 v4个版本,在v2版本上觉得一周之后可以上线了,上线后发现在v2版本上有一个bug,但是在master主线上,已经开发到v4版本,在v4版本上开发新的功能了,这时应该怎么办?
分支就可以解决这个问题,通过git命令切换到v2版本,在v2版本master节点上,建立一个分支专门修复bug,当分支上bug修复好了,在回到master节点的v4版本继续开发,等开发完成,最后,合并分支,这样新功能开发完成了,bug也修复好了。
六、合并分支branch(默认分支master)

git init test
cd test/
touch gblfy.txt



git commit -m”第1个版本”


git add .
git commit -m”第2个版本”

git tag -a v1 -m”第一个标签”


git add .
git commit -m”第3个版本”

git log --oneline --graph --all

git checkout 62b6676

git log --oneline --graph --all


在v1版本上创建分支:git branch 分支名
也可以,创建并切换到创建的分支:git checkout -b 分支名:

git checkout -b helper


git add .
git commit -m”fix”


回到master分支:

git checkout master



git add .
git commit -m”4”

git log --oneline --graph --all


现在的情况是,在helper分支上bug已经修复了,但是在master节点上,还没有合并分支。
原则是:在上线新版本之前合并分支,修复bug
合并分支:git merge 分支名
将分支合并到当前节点上

git merge helper



解决冲突,根据需求来就可以。

git add .
git commit -m”merged master + helper”

git log --oneline --graph --all


七、远程分支
版本控制(git仓库)放在本地有一定的风险性,在远程仓库创建一个版本控制(git仓库)。
例如:本地(local)git仓库也有4个版本,将本地仓库的4个版本推送到远程(remote)git仓库,这样本地仓库和远程仓库都有4个版本。
假设1:在本地新增第5个版本,只需要把第5个版本推送到远程分支上即可(不需要把整个项目重新进行再次推送)。
假设2:本地这台电脑的仓库挂了,换一台电脑直接从remote仓库,将代码进行拉取即可。
案例演示:

git init test


cd test/
touch gb.txt


git add .
git commit -m”本地file推送remote测试01”

git log


下一步找一个remote仓库进行推送:
码云进行演示:
登录马云:




登录github,新建一个仓库,(原理和本地一样,新建一个仓库,并进行初始化)

添加远程仓库:git remote add 远程名称 远程地址

 git remote add mayun git@gitee.com:gb_90/test.git


这样本地仓库和远程仓库就建立好连接了
列出所有远程仓库:git remote
这样就会把本地仓库连接的所有远程仓库都列出来

 git remote


如果需要详细信息,执行命令:git remote -v

 git remote -v


fetch指的是:代码拉取(下载)地址
push指的是:代码推送(上传)地址
一般个人就是一个地址
上传代码:git push -u 远程名 分支名

git push -u mayun master


git push 推送
-u:就是在服务器端设置如果下一次有人想把这代码推送,应该推送到哪一个分支上去合并,因此推送代码后面要加-u,避免以后往下拉取代码出问题。
执行命令后,报错 提交失败,意思是,你可能是第一次提交,在执行git push 之前,先要执行,git pull

 git pull

问题现象:在执行git pull的时候,提示当前branch没有跟踪信息:
解决方案:
比如说要操作master吧,一种是直接指定远程master:
格式:git pull 远程名称分支
例如:

git pull mayun master
git pull origin master
 git pull


发生报错:我们拒绝,因为你当前的分支是比较落后,也就是说,当前创建的分支,没有远程的分支新,现象是这样的。下面进行强制推送-
git push -u -f origin master 强制推送代码,把matser进行覆盖

 git push -u -f mayun master


2、已经成功了,将本地代码推送到远程仓库
3、登录远程,进行验证

4、git branch 查看本地分支
git branch -r 查看远程分支

git banch -r
git branch


再次测试验证:

touch 1.txt


git add 1.txt
git commit -m”本地代码推送remote测试02”

 git push -u mayun master



验证成功!!!
本地仓库删除,从远程拉取代演示:


克隆(拷贝)仓库:git clone 仓库地址

 git clone git@gitee.com:gb_90/test.git


 cd test/
git log --oneline --all


如果使用git clone 链接 这个克隆命令
他会默认为将远程仓库设置为你克隆的地址,不需要你再去设置。代码拉取的地址

 git remote


注:不是mayun对吗?默认远程仓库名称:origin,刚才咱们自己定义的mayun对吧,这个名称可以自定义

 git remote -v

touch 2.txt


git add 2.txt
git commit -m”local-->>>>>remote03”


如果继续使用,mayun就会出错

git push -u mayun master


可以查看远程名称

 git remote


把remote名称修改为默认的origin即可:

 git push -u origin master



八、多人远程操作(重点)
案例演示:




本地设定2个人,gb,ly,在idea开2个终端进行模拟
gb先从remote拉取仓库代码

 git clone mayun git@gitee.com:gb_90/gblfy.git gb


ly从remote拉取仓库代码:

 git clone mayun git@gitee.com:gb_90/gblfy.git gb



gb ly分别进入仓库:

cd gb/

cd ly/


gb创建1.txt:

touch 1.txt



添加至暂存区,提交到本地仓库:

git add 1.txt
git commit -m”第一个版本”


情景1:gb创建文件---->>>>>添加至暂存区---->>>>>
提交到本地仓库。这时ly本地仓库是没有的,因为gb还没有将本地的仓库的代码推送到remote仓库。
将本地仓库代码---->>>>>推送到remote仓库

 git push -u origin master


查看remote:

查看提交记录:

代码已经同步完成!!!
情景2:这时ly本地仓库中仍然没有,remote仓库中的最新代码
获取远程更新:git pull 意思是拉取、下载

git pull



这样gb ly 2个仓库的代码就同步了!!!!

git add 1.txt
git commit -m”第2个版本”

git push -u -origin master

查看具体提交信息:



git pull


git add .
git commit -m”第3个版本”

 git push -u origin master



git add .
git commit -m””


未从remote拉取最新代码,对内容进行修改,会报以下异常:

 git push -u origin master

解决方案:

git pull



 git add .

git push -u origin master


 git pull


git pull命令就相当于git fetch && git merge

git fetch只是把代码拉取到本地,放置到已提交状态下。
首先gbly是gb更新一次,上传remote
ly从remote将代码拉取到本地,修改后

git下载安装、验证、企业实战单机、多人协作相关推荐

  1. Windows下Git下载安装详细图文教程(亲测有效)

    Windows下Git下载安装详细图文教程(亲测有效) 文章目录 Windows下Git下载安装详细图文教程(亲测有效) 一.Git的下载 1.1官网下载 1.2 资源下载 二.Git的安装 三.总结 ...

  2. git 下载 安装

    1.下载Git,官网地址:https://git-scm.com/,进入官网首页 在右下方的显示器中找到最新的版本下载,点击下载,跳转到下载页面 下载完成 2.安装Git 双击刚刚下载完成的安装文件, ...

  3. 本地Git下载安装以及创建版本库、远程Github

    Git下载安装 windows:在git官网下载安装程序即可.点击git bash,出现命令行窗口说明安装成功. CentOS 7:root权限下,输入yum install git.如果非root权 ...

  4. Git下载安装及环境配置,解决安装包下载慢问题(详细版)

    Git是我们平时开发都要用到的项目管理工具,虽然有网页版的Git网站,但是在本地安装Git后,可以直接使用命令语句来进行项目的上传与克隆.还是非常方便的. 今天就来介绍下Git的下载. git下载安装 ...

  5. git下载安装(基本命令)

    由于之前电脑重置,所以设置下git.本篇文章作为笔记 git下载安装(基本命令) 文章目录 git下载安装(基本命令) 1.git的下载 2.安装git 3.基本命令 1.git的下载 下载地址:ht ...

  6. Git实战技巧-多人协作开发出现代码冲突,如何合并代码

    Git实战技巧-多人协作开发出现代码冲突,如何合并代码 1.企业场景 小智和小黑两个人交叉修改同一个文件,这个时候小智修改完提交.问题来了,如果小智提交成功,那么就相当于忽略了小黑提交的内容.这个时候 ...

  7. 【Git】Git下载安装与使用(一)

    目录 1. 前言 1.1 什么是Git 1.2 使用Git能做什么 2. Git概述 2.1 Git简介 2.2 Git下载与安装 3. Git代码托管服务 3.1 常用的Git代码托管服务 3.2 ...

  8. Git下载安装(Windows版本+Linux版本)

    官网下载 下载Git服务:https://git-scm.com/downloads,这里下载的版本是:Git-2.17.0-64-bit.exe 下载Git客户端TortoiseGit:https: ...

  9. MacBook git 下载 安装 配置环境变量 使用示范

    文章目录 下载 安装 配置环境变量 使用示范 下载 搜索 git mac download 一般第一个就是: https://git-scm.com/download/mac 这里提到了6种安装方式. ...

最新文章

  1. Json文件解析(下
  2. Jquery循环截取字符串(多出的字符串处理成...)
  3. java免安装版配置,Tomcat(免安装版)的安装与配置 配置成windows服务
  4. 在Eclipse上搭建Android C开发环境
  5. 慢查询优化,我终于在生产踩到了这个坑!!
  6. SQLite.NET.0.17 的离奇之处, BUG??? BY DESIGN??
  7. redhat 添加ssh端口_RHEL 7修改ssh默认端口号
  8. 【CodeForces - 245H 】Queries for Number of Palindromes (带容斥的区间dp)
  9. 小米鸿蒙1001小米鸿蒙,小米高管早就放下狠话!愿意使用鸿蒙2.0系统:那其他厂商呢?...
  10. 20210621:力扣第246周周赛(上)
  11. mysql or 速度_mysql中or和in的效率问题
  12. 关于proteus8.8的一键破解版和汉化包
  13. 霍志刚中国科学院计算机,曙光4000系列高性能计算机研究集体
  14. 微信报修小程序源码(近期维护V3.1.0)
  15. 去TB!登上了上海最高峰!
  16. 10个的国外大学论文期刊网站分享
  17. 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
  18. mysql workbench安装教程_MySql可视化工具MySQL Workbench使用教程
  19. 【转】花开正当时,十四款120/128GB SSD横向评测
  20. 模板引擎Thymeleaf?来这一篇就够用了

热门文章

  1. windows驱动开发学习
  2. 关于通过dll导出类模板和函数模板
  3. HBase ACL管理 Hbase 权限管理
  4. Phoenix 关联hbase表历史数据
  5. 全员学习低代码,一汽大众领跑数智化转型背后的秘密
  6. 技术干货|基于Apache Hudi 的CDC数据入湖「内附干货PPT下载渠道」
  7. 谁来拯救存量SGX1平台?又一个内核特性合并的血泪史
  8. 实现阿里云容器镜像服务反向访问代理
  9. 支付宝移动端 Hybrid 解决方案探索与实践
  10. 云原生下日志方案的架构设计