首页 > 其他分享 >Git

Git

时间:2023-05-19 15:12:52浏览次数:35  
标签:git GitHub 码云 Git 远程 分支

Git

一、需要掌握的知识点

1.1、Git

1、Git介绍,分布式版本控制工具 VS 集中式版本控制工具

2、Git安装,基于官网发布的最新版本2.31.1安装讲解

3、Git命令,基于开发案例,详细讲解git的常用命令

4、Git分支,分支特性,分支创建,分支转换,分支合并,代码合并冲突解决

5、Idea集成Git

1.2、GitHub

1、创建远程库

2、代码推送Push

3、代码拉取Pull

4、代码克隆Clone

5、SSH免密登录

6、Idea集成GitHub

1.3、Gitee码云

1、码云创建远程库

2、Idea集成Gitee码云

3、码云连接GitHub进行代码的复制和迁移

1.4、GitLab

1、GitLab服务器的搭建和部署

2、Idea集成GitLab

二、课程目标

五小时熟练掌握Git GitHub GitLab Gitee码云的使用

三、正式学习

1、Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效的处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快,它有廉价的本地库,方便的暂存区域和多个工作流分支等特性,其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。


何为版本控制?
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

为什么需要版本控制?

进了公司将从个人开发过渡到团队协作

image-20220829153010160

版本控制工具:

1、集中式版本控制工具

CVS、SVN(Subversion)、VSS....

image-20220829153127814

image-20220829153306420

2、分布式版本控制工具

image-20220829153554598

image-20220829153614462

每个客户端要连接远程库实现共同版本控制

Git简史:

image-20220829154142979

Git工作机制

image-20220829154712281

本地库代码还可以推送到远程库。

工作区和暂存区可以随时删除,但提交到本地库之后,要删除就只能是删库跑路了。。

Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

局域网:

​ GitLab

互联网:

​ GitHub(外网)

​ Gitee码云(国内网站)

2、Git安装

官网地址:https://git-scm.com/

高速下载链接:https://npm.taobao.org/mirrors/git-for-windows/

image-20220829160044244

image-20220829160056636

image-20220829160109046

image-20220829160123572

image-20220829160136324

image-20220829160145425

image-20220829160156208

image-20220829160215454

image-20220829160227122

image-20220829160237767

image-20220829160249976

image-20220829160306733

3、Git常用命令

image-20220829213534095

1、设置用户签名

image-20220829214157532

配置文件保存在C盘/用户/xiaolin/下

image-20220829214255489

2、初始化本地库

1、语法

git init

2、案例实操

image-20220829215643234

image-20220829215716531

3、查看本地库状态

1、语法

git status

2、案例实操

新建文件

vim hello.txt

按a,i,o,键进入insert模式

yy是复制

p是粘贴

按esc退出insert模式

:进入行模式

输入wq保存并退出

cat hello.txt 查看文件内容

tail -n 1 hello.txt 查看文件末尾第一行内容

image-20220829221150021

4、添加到暂存区

1、语法

git add

image-20220829221654474

从暂存区删除

git rm --cached hello.txt

5、提交到本地库

1、语法

git commit -m "日志信息"

image-20220829222125425

6、查看历史记录,版本日志信息

1、语法

git reflog 查看普通版本信息

image-20220829222334520

git log 查看详细版本日志信息

image-20220829222426592

7、修改文件

再次进入到编辑模式

vim hello.txt

修改完

image-20220830101928703

8、版本穿梭

1、语法

git reset --hard 版本号

image-20220830103451478

4、Git 分支操作

image-20220830104137136

1、什么是分支

在版本控制过程中,同时推进每个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

image-20220830104843308

2、分支的好处

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

3、分支的操作

命令名称 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
1、查看分支

1、语法

git branch

2、案例实操

image-20220830105557201

2、创建分支

1、语法

git branch 分支名

2、案例实操

image-20220830105702009

3、修改分支

1、语法

在所在分支下:

vim 文件名,修改文件内容并保存

然后git add 文件名 添加到暂存区

git commit -m 版本信息 文件名 添加到本地库

image-20220830110531317

image-20220830110543991

image-20220830110556660

4、切换分支

git checkout 分支名

git switch 分支名

image-20220830110011705

5、合并分支

1、语法

git merge 分支名

把指定的分支合并到当前分支上

2、案例实操

image-20220830112443270

3、冲突合并

原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新代码内容。

需要进入到vim编辑模式人为修改

然后重新git add

但是注意git commit -m "版本信息"

后不再加文件名

dd删除行

image-20220830114103181

4、创建分支和切换分支图解

master、hot-fix其实都是指向具体版本记录的指针,当前所在的分支,其实是由head决定的,所以创建分支的实质就是多创建一个指针。
Head如果指向master,那么我们现在就在master分支上...
所以切换分支的本质就是在移动head指针。

image-20220830115538659

5、Git团队协作机制

1、团队内协作

image-20220830134028541

岳不群:push推送到代码托管中心(远程库)

令狐冲:clone完整克隆到本地库

令狐冲:修改后push回代码托管中心(远程库),需要获得岳不群的授权。

岳不群:pull拉取令狐冲修改后的代码,同步本地库

2、跨团队协作

image-20220830134522363

6、GitHub操作

GitHub网址:https://github.com/

创建三个账号,模拟团队协作

账号 姓名 验证邮箱
linXiao01 小林001 [email protected]
linXiao02 小林002 [email protected]
linXiao03 小林003 [email protected]

1、创建远程库

linXiao01远程库链接:

https://github.com/linXiao01/git-demo.git

image-20220830144606217

image-20220830144621202

image-20220830145718366

2、远程仓库操作

image-20220830144756424

1、创建远程库别名

1、语法

git remove add 别名 远程库地址

git remove -v 查看当前远程库别名

image-20220830145536310

2、推送本地分支到本地库

1、语法

git push 远程库名 分支名

第一次push会弹出登录github窗口

image-20220830150305489

image-20220830150254898

拉取远程库代码到本地库

git pull 远程库别名 分支名

image-20220830150639313

会自动提交到本地库

3、克隆远程仓库到本地

1、语法

git clone 代码链接

2、案例实操

image-20220830151321199

克隆不需要登录账号

克隆完成的操作:

  1. 拉取代码
  2. 初始化本地仓库
  3. 创建别名==>orign
4、邀请加入团队

image-20220830160057931

5、拉取远程仓库内容

1、语法

git pull 远程库别名 分支名

image-20220830162546955

3、跨团队协作

1、将远程仓库的地址复制发给邀请跨团队协作的人

被邀请人只需要打开链接,点击右上角fork按钮即可

image-20220830163450606

可在本地库修改也可以在线修改

修改完点击pull requests

image-20220830163813963

创建完pull requests

image-20220830164059958

主人一方可以收到,然后进行审核

image-20220830164042595

image-20220830164140117

还可以进行对话

image-20220830164835162

4、SSH免密登录

在远程仓库中还有一个SSH的地址,也就是说我们还可以使用SSH进行访问。

image-20220830165001094

具体操作如下:

--进入当前用户的家目录 cd

--删除.ssh 目录 rm -rvf .ssh

生成.ssh目录

ssh-keygen -t rsa -C 邮箱号

敲3次回车键

image-20220830165541421

读取公共密钥并复制

image-20220830165802383

打开GitHub=>设置=>SSH and GPG keys

image-20220830165931013

设置完

image-20220830170625230

验证pull和push

image-20220830170647943

7、IDEA 集成 Git

1、配置Git忽略文件

1、Eclipse特定文件

image-20220830193735513

2、idea特定文件

image-20220830193803821

3、Maven工程的target目录

image-20220830193834013

为什么要忽略这些?

与项目的实际功能无关,不参与服务器上部署运行,把他们忽略掉能够屏蔽IDEA工具之间的差异。

如何忽略?

1、创建忽略规则文件,xxxx.ignore(前缀名随便起,建议是git.ignore)
这个文件的存放位置原则上在哪里都可以,为了便于让~/gitconfig文件引用,建议也放在用户家目录下

git.ignore文件模板:

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

[user] 
	name = Layne 
	email = [email protected] 
[core] 
	excludesfile = C:/Users/asus/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)

2、定位Git程序

image-20220830195257683

3、初始化本地库

打开项目、菜单栏VCS=>VCS操作=>创建Git仓库

4、添加到暂存区

image-20220830214513275

5、提交到本地库

image-20220830214519210

image-20220830214552074

6、切换版本

image-20220830215726447

7、创建分支

image-20220830215843855

8、切换分支

image-20220830220230092

9、合并分支

image-20220830220217759

10、解决冲突

image-20220830221115526

8、IDEA集成GitHub

1、设置GitHub账号

image-20220830221350223

2、分享工程到GitHub

image-20220830222158145

3、push推送本地库到远程库

image-20220830222957761

image-20220830222512283

4、pull拉取远程库到本地库

image-20220830223909066

image-20220830223207716

5、clone克隆远程库到本地

image-20220830224251621

9、国内代码托管中心-码云

1、简介

GitHub服务器在国外,使用GitHub作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会登录不上。针对这个情况,我们可以使用国内的项目托管网站-码云。

网址:https://gitee.com/

使用方式和GitHub一样,是中文网站

2、码云账号注册并登录

账号:15219374123

密码:623718.a

3、码云创建远程库

image-20220831003720656

4、IDEA集成码云

1、IDEA安装码云插件

image-20220831004120692

2、IDEA连接码云

image-20220831004946410

5、码云复制GitHub项目

新建仓库-》选择导入-》输入GitHub项目http链接-》创建

如何同步?

点击刷新按钮

image-20220831005929662

10、自建代码托管平台GitLab

1、GitLab简介

image-20220831010204604

2、GitLab官网地址

官网地址:https://about.gitlab.com/

安装说明:https://about.gitlab.com/installation/

3、GitLab安装

1、服务器准备

image-20220831010932738

2、安装包准备

image-20220831011003904

image-20220831011031393

EL/7/Gitlab-CE-15.10.2-ce.0.el7.x86_64.rpm - Gitlab/Gitlab-CE ·packages.gitlab.com

3、编写安装脚本

安装 gitlab 步骤比较繁琐,因此我们可以参考官网编写 gitlab 的安装脚本。

gitlab-install.sh

sudo rpm -ivh /usr/src/gitlab-ce-15.10.2-ce.0.el7.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install -y postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlabce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlabce

4、初始化Gitlab

gitlab-ctl reconfigure

5、启动Gitlab

gitlab-ctl start

如需停止,执行 gitlab-ctl stop

6、使用浏览器访问 GitLab

标签:git,GitHub,码云,Git,远程,分支
From: https://www.cnblogs.com/SilverStar/p/17415174.html

相关文章

  • github报错“ssh_exchange_identification: Connection closed by remote host fatal:
    解决方式:不确定是否为密钥过期还是C:\Users\John\.ssh文件夹下的config文件中没有添加github的host。总之,所有的尝试如下:(1)重新生成公钥和私钥。打开gitbash,输入以下命令获取自己github的email。gitconfiguser.email 生成ssh私钥和公钥ssh-keygen-trsa-......
  • Git冲突分析及解决
    Git冲突分析及解决一、gitpull时冲突解决完冲突以后,原来的一个commit,会变成两个,解决冲突的过程也会被提交为一个commit1、gitpull在commit后执行1)情景gitbranch#*b_b#mastergitaddb.txtgitcommit-m'updateb_ba.txt'gitpulloriginmaster#此时......
  • 【教程】Git代理配置
    ✨Git代理配置#httphttpsgitconfig--globalhttp.proxy127.0.0.1:7890gitconfig--globalhttps.proxy127.0.0.1:7890#socks5gitconfig--globalhttp.proxysocks5://127.0.0.1:7890gitconfig--globalhttps.proxysocks5://127.0.0.1:7890#取消代理gitco......
  • git ssh配置
    http://wenwl.site/pages/17c21d/#%E9%85%8D%E7%BD%AE%E7%A7%81%E9%92%A5 TortoiseGit使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。也就是说GitBash中使用命令ssh-keygen-trsa-C"这里换上你的邮箱" 生成的密钥在TortoiseGit中不能用。我们需要用到Tort......
  • git 忽略文件配置,及忽略文件不生效解决方法
     .gitignore忽略文件,符合大多数要求##IgnoreVisualStudiotemporaryfiles,buildresults,and##filesgeneratedbypopularVisualStudioadd-ons.####Getlatestfromhttps://github.com/github/gitignore/blob/master/VisualStudio.gitignore#User-spec......
  • 使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践
    一、背景笔者在6月份加入新团队,新团队这边刚组建起来,基础一些东西还处于待完善状态,比如笔者组内同学约定使用PSR-2的编码风格规范,但是并不是所有人都严格按照PSR-2来提交代码。最大的原因就是口头的约束力极为有限,而团队中大家使用的编辑器不统一,有使用phpstorm,也有使用VSCode更有......
  • git 常用指令
    gitbash常用指令:分支:创建新下分支                                    gitbranchbranchName切换分支                                           gitcheckoutbranchName提交......
  • gitee代码回滚
    首先在终端上输入  gitlog查看已经提交的版本 然后输入gitreset--hard1cfd1634e3c82de62b8edd84315f89fc7de935bc(你要回退的版本id)然后强制推送到远程仓库gitpush--force ......
  • git相关命令
    一、前提安装二、正常应用三、详细命令 一、前提安装在系统中需要安装git,安装教程可以看这:去看看二、正常应用1.如果还没创建仓库gitinit查看工作板状态gitstatus红色代表修改过和未添加的文件,将文件添加进去gitadd.add代表添加......
  • ubuntu下git difftool工具使用
    默认使用vimdiffgitconfig--globaldiff.toolvimdiff取消二次提示每次使用gitdifftool时会有二次提示,如下设置可以取消gitconfig--globaldifftool.promptfalse支持退出整个对比gitconfig--globaldifftool.trustExitCodetrue常用命令]c:跳转到下一个diff......