Git和GitHub【详细教程笔记】

本文详细介绍了Git作为分布式版本控制系统的基础知识,包括Git命令、分支管理和代码合并冲突解决。同时,讲解了GitHub的使用,如创建远程库、推送和拉取代码。此外,还涵盖了码云和GitLab的使用,以及Git在IDEA中的集成。文章深入浅出地阐述了版本控制的重要性,并提供了SSH免密登录的设置方法,确保团队协作的顺畅进行。
摘要由CSDN通过智能技术生成

一、内容简介

1.1 Git

Git介绍:分布式版本控制工具 VS 集中式版本控制工具
Git命令:基于开发案例,了解Git常用命令
Git分支:分支特性、分支创建、分支转换、分支合并、代码合并冲突解决

1.2 GitHub

创建远程库
代码推送Push
代码拉取Pull
代码克隆Clone
SSH免密登录

1.3 Gitee 码云

码云创建远程库
码云连接GitHub进行代码的复制和迁移

1.4 GitLab

GitLab服务器的搭建和部署

二、Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小到大型的各种项目,易于学习,占地面积小、性能极快。

2.1 版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。最重要的就是可以查看历史版本,方便版本切换。

2.2 版本控制工具

  1. 集中式版本控制工具
    CVS、SVN(Subversion)、VSS…

都有一个单一的集中管理的服务器,我们只需通过客户端连接到服务器,取出最新的文件或者提交更新。这么做的缺点就是中央服务器的单点故障

  1. 分布式版本控制工具
    Git、Mercurial、Bazaar、Darcs…

分布式的版本控制系统解决了集中式版本控制系统的缺陷:
(1)服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
(2)每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

2.3 Git工作机制

工作区:指代码存放的磁盘的目录的位置
↓ git add
暂存区:将工作区的代码添加到暂存区,临时存储
↓ git commit
本地库:把代码提交到本地库就称为了历史版本,代码就删不掉了
↓ git push
远程库:推送本地库历史版本的代码到远程库

2.4 Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,简称为远程库
(1)局域网:GitLab
(2)互联网:GitHub(外网)、Gitee码云(国内网站)

三、Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加代码到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

3.1 设置用户签名

1.基本语法:
git config --global user.name 用户名 git config --global user.email 邮箱

2.Git首次安装的用户必须设置一下用户签名,否则将无法提交代码
3.签名的作用:区分操作者身份。用户签名信息在每一个版本的提交信息中是可以看到的,一次来确认该版本的创作者。
4.注意:用户签名和GitHub的账号没有任何关系。
5.图解:
(1)设置用户签名:
在这里插入图片描述

(2)查看配置路径
C盘->用户->11494(我这里是这个名称,自己的要看自己的是什么名称)->.gitconfig
在这里插入图片描述
在这里插入图片描述

3.2 初始化本地库

1.基本语法
git init

2.目的是为了使Git得到本地库的管理权

3.图解:
在自己的git项目文件夹内,鼠标右击选择Git Bash Here后,输入git init,即可在该文件夹内看到一个.git的隐藏文件
在这里插入图片描述

在这里插入图片描述

3.3 查看本地库状态

1.基础语法
git status

2.图解:
(1)在空文件夹状态下查看:
在这里插入图片描述
(2)在非空文件夹状态下查看:
在这里插入图片描述
(3)当使用了git add hello.c命令后,本地库的状态:
在这里插入图片描述

3.4 添加和删除暂存区文件

1.基础语法
添加:git add 文件名
删除:git rm --cached 文件名

2.图解:
在这里插入图片描述
在这里插入图片描述

3.5 提交本地库

1.基础语法
git commit -m "版本信息的描述" 文件名

2.图解:
(1)提交到本地库
在这里插入图片描述
(2)查看版本信息:

在这里插入图片描述

3.6 版本穿梭

3.6.1 查看历史版本

1.基础语法
git reflog
git log,该命令会显示出比较详细的版本信息
2.图解:
在这里插入图片描述

3.6.2 版本穿梭

1.基础语法
git reset --hard 版本号

2.图解:
在这里插入图片描述

四、Git分支操作

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


4.1 分支的操作

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

4.2 查看分支

1.基础语法
git branch -v

2.图解:

在这里插入图片描述

4.3 创建分支

1.基础语法
git branch 分支名

2.图解:
在这里插入图片描述

4.4 切换分支

1.基础语法
git checkout 分支名

2.图解:
在这里插入图片描述

4.5 合并分支

4.5.1 正常合并

1.基础语法
git merge 分支名

2.图解:
在这里插入图片描述

4.5.2 冲突合并

1.在两个分支都修改过后,进行合并,即可发现合并失败

在这里插入图片描述
2.此时,我们查看本地库的状态,可以发现问题出自于两个文件都存在修改,Git不知道要怎么合并
在这里插入图片描述

3.遇到这样的情况,我们需要进行手工合并,即进入vim文本编辑器,留下需要合并的内容,删除多余的内容

在这里插入图片描述

4.最后,将合并好的文件上传到本地库,此时注意,不需要带文件名,若上传本地库时带上文件名则会报错!!!
在这里插入图片描述

五、Git 团队协作机制

5.1 团队内协作

在这里插入图片描述

5.2 跨团队协作

在这里插入图片描述

六、 GitHub操作

GitHub网址:GitHub网址点此跳转

6.1 创建远程库

1.新建一个远程库

在这里插入图片描述

2.填写远程库的名称,选择是否公开远程库,随后点击创建

在这里插入图片描述

3.创建好后的样子,如图所示:
在这里插入图片描述

6.2 远程库操作

命令名称作用
git remote -v查看当前所有远程地址的别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容到远程库
git clone 远程地址将远程库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

6.2.1 查看和创建远程库的别名

1.基本语法
查看当前所有远程地址的别名:git remote -v
创建远程地址的别名:git remote add 别名 远程地址

2.图解:
在这里插入图片描述

6.2.2 推送本地分支到远程库

1.基本语法
git push 别名 分支

2.图解:

(1)第一步:输入推送命令,即可跳出如下窗口
在这里插入图片描述
(2)第二步:选择登陆模式,第一个是浏览器的账号登录,第二个是口令登录。

(3)第三步:根据提示到达该界面,意味着连接成功。
用第一种登陆方式,连接成功示意图:
在这里插入图片描述
用第二种登陆方式,连接成功示意图:
在这里插入图片描述
(4)第四步:查看Git Bash变化和Git Hub变化
在这里插入图片描述
在这里插入图片描述

6.2.3 拉取远程库中的某分支到本地库

1.基本语法
git pull 别名 要拉取的分支

2.图解:
在这里插入图片描述

6.2.4 克隆远程库到本地库

1.基本语法
git clone 远程地址

小tips:
(1)克隆代码不需要账号密码
(2)克隆会拉取代码、初始化本地库和创建别名

2.图解:
在这里插入图片描述

6.3 团队协作

6.3.1 邀请加入团队

(1)邀请方:GitHub项目->setting->Collaborators->在Manage access中,点击 add people->输入被邀请人姓名,即可生成一个邀请连接,等待加入
(2)被邀请方:点开邀请链接,选择同意,则成为该项目的成员,反之,点击婉拒。

6.3.2 跨团队协作

(1)团队成员邀请:复制团队项目的HTTP链接,发给非团队成员
(2)非团队成员打开链接,即可查看项目代码

①在该项目界面的右上角有一个Fork的按钮,点击后,即可在自己的账户里面查看到该项目
②在自己账户上修改好代码准备发送回给团队时,点击GitHub菜单栏中的Pull requests拉取请求,再次点击Create  pull request按钮就创建拉取请求成功了

(3)团队成员

①在自己账户上的Pull request中可以看到一个拉取请求
②点击Pull requset后,即可查看修改代码的人是谁,且通过链接可以看到被修改了之后的代码
③在此界面拉到最下面可以对该修改者进行评论,在修改者自己的界面就可以收到评论,当然本团队成员有权利关闭评论。
④点击Merge pull request即可进行代码合并,当然他会有一个合并提示,需要你确定合并,才会合并

6.4 SSH免密登录

6.4.1 设置SSH免密登录

1.打开C盘->用户->11494(自己的是什么就点什么)
查看该文件夹下是否存在.ssh文件夹,若有,请删除,没有则在此处右击打开Git Bash,输入$ ssh-keygen -t rsa -C 你的邮箱,之后需要摁三次回车
在这里插入图片描述
2.查看并复制密钥
在这里插入图片描述

3.在GitHub中打开Settings
在这里插入图片描述

4.在SSH and GPG keys中就可以添加密钥了
在这里插入图片描述

6.4.2 SSH免密登录——测试pull

1.在GitHub中项目的菜单栏中,有一个Code,复制clone中SSH的链接

2.在本地的Git Bash中输入git pull SSH链接 拉取的分支

在这里插入图片描述
3.拉取成功示意图
在这里插入图片描述

6.4.3 SSH免密登录——测试push

1.在修改好代码后,在Git Bash中输入git push SSH链接(或别名) 分支,一般来说输入完毕就成功了
在这里插入图片描述

2.查看GitHub中是否存在修改过的代码
在这里插入图片描述

七、IDEA集成Git

7.1 配置Git忽略文件

原因:这些文件不参与服务器上的部署运行,忽略掉可以屏蔽IDE工具之间的差异

忽略的方法:
创建忽略规则文件:xxx.ignore(建议为git.ignore)
该文件的存放位置:C盘->用户->11494(你自己的是什么就是什么)

git.ignore内容:

#Complied 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_pi

.classpath
.project
.setting
target
.idea
*.iml

.gitconfig内容:
在这里插入图片描述
(注意:路径使用/,Windows复制的路径默认为\)

7.2 定位Git程序

1.新建项目文件
在这里插入图片描述
2.打开设置
在这里插入图片描述

3.开始设置,定位Git
在这里插入图片描述

7.3 添加到Git工作区和提交到Git本地库

在这里插入图片描述

7.4 切换版本

1.查看版本信息
在这里插入图片描述
2.切换版本:选中版本,右击,选中Checkout Revision ‘xxx’
在这里插入图片描述

7.5 创建分支

1.右击项目名称,选择Git,点击Branches按钮;或者通过右下角的master按钮来添加

在这里插入图片描述

2.在弹出的Git Branches框里,点击New Branch按钮。

在这里插入图片描述

3.填写分支名称,创建该分支。
在这里插入图片描述

7.6 切换分支

在IDEA的右下角点击分支,选择其他分支,再选择checkout即可
在这里插入图片描述

7.7 合并分支

7.7.1 正常合并

在这里插入图片描述

7.7.2冲突合并

1.当遇到冲突合并的时候,会遇到冲突提示,此时需要我们手动修改冲突。
在这里插入图片描述
2.进入编辑界面后,选择需要合并的代码,点击Apply即可
在这里插入图片描述

八、IDEA集成GitHub

8.1 设置GitHub账号

1.打开设置中的GitHub,选择Add account来设置GitHub账号

在这里插入图片描述
2.选择log In via GitHub来添加账号

在这里插入图片描述

3.在跳出的页面里选择Authorize in GitHub

在这里插入图片描述

4.同意授权,点击Authorize JetBrains

在这里插入图片描述

5.授权成功后,账号就添加成功了!!!

8.2 分享项目到GitHub远程库上

1.在菜单栏中选择Git->GitHub->Share Project on GitHub
在这里插入图片描述

2.在弹出的窗口内,依次输入远程库的项目名、别名、描述,然后进行分享。
在这里插入图片描述

3.查看是否分享成功
在这里插入图片描述

8.3 push推送本地库到远程库

1.右键点击项目,可以将当前分支的内容push到GitHub的远程库中。
在这里插入图片描述

2.在弹出的窗口里单击项目名,选择Define remote
在这里插入图片描述

在这里插入图片描述
3.设置好名字,将GitHub上的SSH链接复制到弹出来的窗口中
在这里插入图片描述
4.单击项目名,切换为SSH登录模式,开始push
在这里插入图片描述
5.Push成功的界面
在这里插入图片描述

在这里插入图片描述

tips:
(1)push是将本地库代码推送至远程库,若本地库代码与远程库代码版本不一致,push的操作就会被拒绝。想要push成功,就要保证本地库的版本要比远程库的版本高!
(2)在手动修改本地库代码之前,一定要先检查下远程库跟本地库代码的区别,若本地库代码的版本已经落后,切记先要pull拉取远程库的代码,将本地库的代码更新到最新以后,再将那些修改、提交和推送!

8.4 pull拉取远程库到本地库

1.右键点击项目,可以将远程库的内容pull到本地库
在这里插入图片描述

2.在弹出的窗口里面选择拉取的链接和分支。
在这里插入图片描述

3.拉取成功

如果拉取失败,则可能是因为网络质量的问题,重新拉取试试。
在这里插入图片描述

tip:
pull是将远程库的代码内容拉取到本地库中,若远程库和本地库的代码不一致,会进行自动合并,此时将会遇到合并冲突,需要手动解决冲突。

8.5 clone克隆远程库到本地

1.打开IDEA,选择Get from VCS

在这里插入图片描述

2.从GitHub的项目中拿到项目的SSH链接
在这里插入图片描述

3.克隆成功会跳出IDEA项目管理界面,否则不会 ,则需要重复第二步操作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值