目录
git工作机制
Git 和代码托管中心
1.Git 安装
官网地址: https://git-scm.com/
![](https://img-blog.csdnimg.cn/direct/061cad5531a044d980efc41dc6274088.png)
点击 Finsh 按钮,Git 安装成功!
在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功
2.Git的常用命令
设置用户签名![](https://img-blog.csdnimg.cn/direct/fd231d42c8d044cba50beb10147bfe12.png)
初始化本地库
查看本地库状态
新增文件(hello.txt)
再次查看(检测到未追踪的文件)
添加暂存区
![](https://img-blog.csdnimg.cn/direct/77f76605931948e5abeeaa107bec9e68.png)
提交本地库
![](https://img-blog.csdnimg.cn/direct/d020ada70d5d442ebaed6fb69a1ec8dc.png)
查看状态(没有文件需要提交)
修改文件
查看状态(检测到工作区有文件被修改)
将修改的文件再次添加暂存区
查看状态(工作区的修改添加到了暂存区)
查看历史版本
版本穿梭
git reset --hard 版本号
Git 分支操作
![](https://img-blog.csdnimg.cn/direct/864b4cdcbf8c4ca992aac80ba318fa0b.png)
查看分支
git branch -v
创建分支
git branch 分支名
切换分支
git checkout 分支名
合并分支
![](https://img-blog.csdnimg.cn/direct/c8387eccbfe449db9023c8520670bf81.png)
案例实操 在 master 分支上合并 hot-fix 分支
产生冲突
冲突产生的表现:后面状态为 MERGING
查看状态(检测到有文件有两处修改)
解决冲突
2.添加到暂存区
3.执行提交(注意:此时使用 git commit 命令时不能带文件名)
创建分支和切换分支图解
所以切换分支的本质就是移动 HEAD 指针。
3.Git 团队协作机制
团队内协作
跨团队协作
4.github操作
创建远程仓库
远程仓库操作
![](https://img-blog.csdnimg.cn/direct/a0fe1a7fc6d04ee3a7350dcbcff46120.png)
创建远程仓库别名
推送本地分支到远程仓库
克隆远程仓库到本地
![](https://img-blog.csdnimg.cn/direct/c1dbe61bc87540d690bad489d9f038f6.png)
小结:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
邀请加入团队
![](https://img-blog.csdnimg.cn/direct/78b9d360fd944f87b8d75a30ef892dff.png)
填入想要合作的人
![](https://img-blog.csdnimg.cn/direct/85ff191933194463bdbde29d842a2905.png)
在 atguigulinghuchong 这个账号中的地址栏复制收到邀请的链接,点击接受邀请。
成功之后可以在 atguigulinghuchong 这个账号上看到 git-Test 的远程仓库
令狐冲可以修改内容并 push 到远程仓库。
![](https://img-blog.csdnimg.cn/direct/ec1f03cc6c0b4c6783e6c614bf48f925.png)
拉取远程库内容
git pull 远程库地址别名 远程分支名
跨团队协作
![](https://img-blog.csdnimg.cn/direct/3d8ebb4ea3024977bf4df9cd2e79e348.png)
叉入中
叉成功后可以看到当前仓库信息。
东方不败就可以在线编辑叉取过来的文件
编辑完毕后,填写描述信息并点击左下角绿色按钮提交。
接下来点击上方的 Pull 请求,并创建一个新的请求。
回到岳岳 GitHub 账号可以看到有一个 Pull request 请求。
进入到聊天室,可以讨论代码相关内容。
如果代码没有问题,可以点击 Merge pull reque 合并代码
SSH 免密登录
我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问。
具体操作如下:
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了
IDEA 集成 Git
配置 Git 忽略文件
为什么要忽略他们?
# 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
定位 Git 程序
![](https://img-blog.csdnimg.cn/direct/a9c4c7db6ae242f2944c6e018c8fd2f4.png)
初始化本地库
![](https://img-blog.csdnimg.cn/direct/2ca7a80215b3466e81431c9dd3a1f3c5.png)
添加到暂存区
右键点击项目选择 Git -> Add 将项目添加到暂存区。
提交到本地库
切换版本
在 IDEA 的左下角,点击 Version Control,然后点击 Log 查看版本
右键选择要切换的版本,然后在菜单里点击 Checkout Revision。
创建分支
![](https://img-blog.csdnimg.cn/direct/7a742f99ea544161a7d15f4f9f6e8c3e.png)
在弹出的 Git Branches 框里,点击 New Branch 按钮。
填写分支名称,创建 hot-fix 分支。
![](https://img-blog.csdnimg.cn/direct/7c238c4b51f24cd0b003ab7d8ee2cafa.png)
切换分支
合并分支
手动合并完代码以后,点击右下角的 Apply 按钮。
代码冲突解决,自动提交本地库
IDEA 集成 GitHub
设置 GitHub 账号
![](https://img-blog.csdnimg.cn/direct/2948d222d6b8444886c0d3e453041f49.png)
![](https://img-blog.csdnimg.cn/direct/dc8a20036eeb421eb377022eccd2233d.png)
点击生成 token
复制红框中的字符串到 idea 中。
分享工程到 GitHub
![](https://img-blog.csdnimg.cn/direct/326e9a79003349ffa84ff53204a80469.png)
push 推送本地库到远程库
pull 拉取远程库到本地库
clone 克隆远程库到本地
为 clone 下来的项目创建一个工程,然后点击 Next。
国内代码托管中心-码云
最后根据需求选择分支模型,然后点击创建按钮。
远程库创建好以后,就可以看到 HTTPS 和 SSH 的链接。
IDEA 集成码云
Idea 重启以后在 Version Control 设置里面看到 Gitee,说明码云插件安装成功。
然后在码云插件里面添加码云帐号,我们就可以用 Idea 连接码云了。
IDEA 连接码云
自定义远程库链接。
给远程库链接定义个 name,然后再 URL 里面填入码云远程库的 HTTPS 链接即可。码云服务器在国内,用 HTTPS 链接即可,没必要用 SSH 免密链接
然后选择定义好的远程链接,点击 Push 即可
看到提示就说明 Push 远程库成功。
去码云远程库查看代码
码云复制 GitHub 项目
将 GitHub 的远程库 HTTPS 链接复制过来,点击创建按钮即可。
如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新!
自建代码托管平台-GitLab
安装包准备
https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
编写安装脚本
vim gitlab-install.sh
sudo rpm -ivh /opt/module/gitlab-ce-13.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/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce
![](https://img-blog.csdnimg.cn/direct/c5cc2efb55444cdbb8d8a0c517231eff.png)
然后执行该脚本,开始安装 gitlab-ce。注意一定要保证服务器可以上网
![](https://img-blog.csdnimg.cn/direct/4fac31acf73b44b3af2d4cbfe5548333.png)
初始化 GitLab 服务
执行以下命令初始化 GitLab 服务,过程大概需要几分钟,耐心等待
启动 GitLab 服务
执行以下命令启动 GitLab 服务,如需停止,执行 gitlab-ctl stop
![](https://img-blog.csdnimg.cn/direct/2c2479fe29e24e5f962b81430c47f468.png)
![](https://img-blog.csdnimg.cn/direct/22b6848a77884a85a41da729f53d0fab.png)
GitLab 创建远程库
IDEA 集成 GitLab
安装 GitLab 插件
push 本地代码到 GitLab 远程库
![](https://img-blog.csdnimg.cn/direct/5313364cc4814853b282f14aeabd8228.png)
![](https://img-blog.csdnimg.cn/direct/6500a283f99b4afd88ecb60cb15ea1af.png)
首次向连接 gitlab,需要登录帐号和密码,用 root 帐号和我们修改的密码登录即可。