一 Git 简介
分布式版本控制工具,用于管理不同规模的代码版本,方便代码的更新和回滚,方便程序开发时的分工,提高团队协作效率。
官方网站:https://git-scm.com/
二 Git 工作机制和代码托管中心
1 Git 工作机制如下图所示:
2 代码托管中心
(1)局域网
GitLab 企业或组织内部独立搭建的版本控制服务器
(2)互联网
GitHub(国外)
GitEE码云(国内)
三 Git 安装
1 进入官网点击下载最新版本
2 下载完成后,双击进行安装
3 阅读相关协议-next
4 选择安装目录(要求目录名全英文且无空格)
5 自定义配置信息
6 再次确认安装目录名
7 选择git的默认文本编辑器
8 设置主分支名(默认master)
9 设置使用git的范围
第一个:仅在git bash中使用git
第二个:可以在第三方软件中使用
第三个:可以在unix等工具选项中使用
选择后两者会改变系统环境变量
10 选择后台客户端连接的协议
11 配置行末换行符
12 配置中断类型
13 配置默认行为(前进-合并)
14 选择git凭据的模式
15 其他配置
16 实验室功能
17 等待安装
18 安装成功
四 Git 常用命令
4.1 设置用户签名
设置完成后,可以在本地C盘用户目录中查看.gitconfig文件内容,如果出现设置好的用户名,则代表成功
4.2 初始化本地库
进入想要设置成本地库的目录,在目录内打开git bash,输入初始化命令
命令执行后,目录内创建.git隐藏目录即为成功
4.2 查看本地库状态
在本地库内输入git status进行查看
4.3 将文件从暂存区添加/删除
添加:git add 文件名
删除:git rm --cached 文件名
4.4 提交本地库
使用 git commit -m “日志信息” 文件名
4.5 版本穿梭
查看日志:
git reflog(简略)
git log(详细)
版本穿梭:
git reset --hard 版本号
穿梭成功后,会保存穿梭记录
五 Git 分支
底层实现还是指针,目的是提高工作效率
5.1 常用命令
5.2 创建分支
语法:git branch 分支名
5.3 查看分支
语法:git branch -v
5.4 切换分支
语法:git checkout 分支名
5.5 合并分支
语法:git merge 分支名
注意:A分支将B分支合并,需要指针需在A分支上时执行合并命令。
5.5.1 正常合并
5.5.2 冲突合并
发生原因:当A分支和B分支同一文件进行了修改,判定会产生某一分支修改内容被覆盖的风险。
手动解决:
修改冲突内容,并将修改后的冲突文件上传暂存区,提交本地仓库。
需注意此时commit不加文件名,因为此时处于MERGING状态,无法识别提交的是哪个分支的文件名。
MERGING状态消除,成功手动合并。
六 远程仓库
所谓远程仓库就是在代码托管中心(github、gitee、gitlab)上创建的云仓库。
6.1 常用命令
6.2 github创建远程仓库
官方网址:https://github.com/
创建成功后Http协议下的地址:
创建成功后SSH协议下的地址:
6.3 gitee创建远程仓库
官方网址:https://gitee.com/
创建成功后Http协议下的地址:
创建成功后SSH协议下的地址:
6.4 查看远程仓库
语法:git remote -v
6.5 创建别名
语法:git remote add 别名 远程仓库地址
注意:别名尽量与远程仓库名一致,避免歧义。
6.6 推送本地库到远程仓库
语法:git push 远程仓库别名/远程仓库地址 分支名
注意:推送的最小单位为分支;
6.7 拉取远程仓库的代码
语法:git pull 远程仓库别名/远程仓库地址 分支名
6.8 克隆远程仓库的代码
语法:git clone 远程仓库地址
注意:克隆好后,会自动为远程仓库地址取别名,默认orgin,可以直接使用。
6.9 团队协作(邀请成员|同意邀请)
远程仓库需要多人的团队共同进行使用,但是远程仓库具有保护性,除创建者本身外,其他人没有权限直接对远程仓库进行push等操作。需要由创建者邀请成为成员(赋予权限)。
6.9.1 github
1 在远程仓库设置中点击添加成员。
2 搜索github中存在的用户并添加。
3 成功添加后,复制图中所示的邀请函,发送给被邀请的成员。(毕竟不能自相情愿的邀请别人加入团队,还需要被邀请方的同意)
邀请函内容实际是一个地址:
4 被邀请成员在github地址栏粘贴邀请函地址,在邀请界面接受邀请。
5 成为团队成员后,在个人github端便可以查看远程仓库内容,并且可以通过git进行推送等操作。
6.9.2 gitee
1 在远程仓库设置中点击添加成员。
2 发送邀请二维码|搜索用户名邀请|对现有仓库成员批量邀请,三种方式皆可
3 被邀请者接收邀请即可。
6.10 跨团队协作
本质是将其他团队的远程仓库,fork成为自己的远程仓库。
1 进入其他团队的远程仓库,点击右上角的fork按钮,复刻成为自己的远程仓库。
2 成功后如下图所示,并可以进行相关操作。
3 当完成开发或其他工作后,点击pull request按钮,可以将修改后的远程仓库发给原远程仓库的团队。原远程仓库团队审核发送请求后,决定是否接收。
4 原远程仓库团队在接收pull request请求后,审核代码,通过后点击merge pull request按钮进行代码合并。
6.11 ssh免密登录
1 在计算机对应用户目录下打开git bash。
2 输入ssh-keygen -t rsa -C 邮箱
,生成ssh公匙、私匙。
不需要输入任何内容,连按三次回车。
成功生成后,出现.ssh文件目录,包含id.rsa(私匙)和id.rsa.pub(公匙)。
3 读取公钥,将公钥内容存入github/gitee中。
4 成功添加ssh公匙后,就可以在保存私匙的计算机上,通过ssh地址的方式拉取,推送内容。
5 在git bash中通过ssh免密方式拉取/推送代码。
成功拉取
成功推送
七 IDEA集成Git
7.1 配置Git忽略文件
配置原因:不论是Eclipse还是IDEA,亦或其他代码编辑器在生成项目工程时都会创建一些独有的文件,例如.iml、.idea与项目实际功能无关,不参与服务器上部署运行,进行忽略可以屏蔽IDE之间的差异。
1 创建忽略规则文件xxxx.ignore(名字随便起,但后缀必须是ignore,推荐取名git.ignore),存放位置最好在家目录下。
2 写入需要忽略的文件类型。
例如:
# Compiled class file
*.class
# Log file
*.log
# Blue files
*.ctxt
# Mobile Tools for Java(J2EE)
.mtj.tmp/
# Packge Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash Logs, see http://www.java.com/en/download/help/error_hostpot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
3 保存规则文件,并在.gitconfig文件中进行引用。
[core]
excludesfile = C:/Users/lenovo/git.ignore
注意:使用的是/而非\。
7.2 定位Git所在位置
1 打开IDEA,创建新工程,并点击File-settings
2 进入Git配置界面,选择Git所在路径。
7.3 初始化、添加、提交操作
7.3.1 初始化
这样就完成了初始化操作,在项目目录下生成了.git,并且项目目录中的文件变红识别为未被追踪的状态。
7.3.2 添加
右键需要添加进缓存区的文件,选择添加即可。
7.3.3 提交
右键已经被添加进缓存区的文件,选择提交即可。
回归正常的颜色,提交成功!
7.4 查看、切换版本
7.4.1 查看版本
7.4.2 切换版本
选择需要切换的版本右键,点击Checkout Revison xxxxx。
7.5 创建、切换分支
7.5.1 创建分支
点击项目根目录,Git=>Repository=>Branch
或者
输入分支名即可
创建成功,并且处于新创建的分支上
7.5.2 切换分支
选中想要切换的分支,选择切换即可。
7.6 合并分支
7.6.1 正常合并
在master分支时合并hot-fix分支,选中hot-fix分支,选择Merge into Current即可。
7.6.2 冲突合并
7.7 绑定github账号
输入github账号密码登录,这种方式很难登录成功
使用token登录,推荐使用
登陆成功
7.7.1 github生成token步骤
在最左侧、最下面点击Developer settings
需要注意token生成后,只显示一次,需要立刻进行复制保存,否则遗忘后无法再次查看,只能重新创建。
7.8 分享项目到github
7.9 推送项目到github
或
此时默认的push方式是使用http协议。
如果使用ssh协议,如下操作:
输入ssh协议形式的远程仓库地址即可。
注意:push代码时需要确保代码比远程仓库中的代码版本高,例如本地仓库push代码2.0版本,远程仓库代码要低于2.0版本,如果高于2.0版本,则会导致push失败。所以在良好的习惯是每日工作前先从远程仓库中拉取代码,与远程仓库代码一致,然后工作中的代码就能确保高于远程仓库中的代码版本。
7.10 拉取项目到github
7.11 从github中克隆项目
7.12 下载码云(gitee)插件
使用gitee和使用github大同小异,故此不再赘述,唯一需要注意的是IDEA中自带github的插件,但是继承gitee需要自行下载插件。
下载并集成成功后,在Version Control中就会出现Gitee,此时可以进行相关操作。
八 GitLab
GitLab是使用MIT许可证的基于网络的Git仓库管理工具,具有wiki和issue跟踪功能,使用Git作为管理代码的工具,并在此基础上搭建起来的Web服务。
GitLab官网:https://about.gitlab.com/
8.1 安装GitLab
九 转载说明
此文章内容全部源于B站尚硅谷Git教学视频整理而成,具体网址:https://www.bilibili.com/video/BV1vy4y1s7k6?p=41&vd_source=d0e289f3e985965eb589135ed2cf3712