Git的基本使用
学好git一、目标git介绍 分布式版本控制工具vs集中式版本控制工具 ·git安装 基于官网发布的最新2.31.1 安装 讲解git命令 基于云开发案例 详细讲解git的常用命令git分支 分支特性 分支创建 分支转换 分支合并 代码合并冲突解决idea集成git二、github代码推送 Push代码拉取 Pull代码克隆 CloneSSH免密登录idea继承github三、gitee码云码云创
学好git
一、目标
- git介绍 分布式版本控制工具vs集中式版本控制工具 ·
- git安装 基于官网发布的最新2.31.1 安装 讲解
- git命令 基于云开发案例 详细讲解git的常用命令
- git分支 分支特性 分支创建 分支转换 分支合并 代码合并冲突解决
- idea集成git
二、github
- 代码推送 Push
- 代码拉取 Pull
- 代码克隆 Clone
- SSH免密登录
- idea继承github
三、gitee码云
- 码云创建远程库
- idea继承gitee
- 码云连接github 进行代码的复制和迁移
四、gitLab 基于局域网
- gitlab服务器的搭建和部署
- idea集成gitlab
第一章 Git的概述
概念:git是一个免费的开源的版本控制系统,可以高效的处理从小型到大型的各种项目
功能:易于学习,占地面积小,性能极快。有廉价的本地库,方便的暂存区域和多个工作流分支作用,性能优于cvs,subversion,perforce等版本控制工具
版本控制:就是记录文件的内容变化,以便将来查阅特定版本修订情况的系统,最重要的就是可以记录文件修改历史记录,从而让用户查看历史版本 方便版本切换
个人过度到团队 人一多 改的次数多 容易覆盖 分不清
-
集中式版本控制工具的思想 :
- 就是 所有人修改代码都在同一台中央服务器上 保证修一致
- 优点:可以轻松把控每个开发者的权限
- 缺点:就是中央服务器出现单点故障
-
分布式版本控制工具
- 解决了集中式版本控制的缺陷
- 服务器断网的情况下也可以进行开发 版本控制是在本地进行的
- 每个客户端都保留的整个完整的项目 (包含历史记录 更加安全)
- 解决了集中式版本控制的缺陷
工作机制
代码托管中心
- 概念:是基于网络服务器的远程代码仓库的,一般称为远程库
- 局域网
- GitLab
- 互联网
- GitHub 外网
- Gitee码云 国内
- 局域网
- Git Bash Here 命令行客户端
- Git GUI Here 图像化客户端
第二章 Git的安装
已经安装
第三章 Git的常用命令
3.1 常用命令
git config --global user.name 用户名
git config --global user.email 邮箱
#这个命令设置的用户名和邮箱 仅仅是为了区别 和github没有关系
3.2初始化本地库
-
基本语法
git init 初始化本地库
git status 查看本地库状态
vim hello.txt 打开编辑文件
cat hello.txt 查看文件内容
i o 插入
yy 复制
p是粘贴
exit 退出
:wq保存退出
:w 保存
:q退出
3.3添加到暂存区
git add 文件名
添加后 需要删除暂存区 (这个删除仅仅是删除暂存区里的 工作区依然存在那个文件)
git rm --cached 文件名
3.4提交到本地库
git commit -m “版本控制信息” 文件名
提交之后会有一个英文和数字组成的版本号
3.5查看版本控制的命令
git reflog --查看引用日志信息 版本信息为前七位的版本信息
git log查看详细日志的信息 查到的版本信息 是全称 看到提交的作者和提交的时间
3.6一套命令
修改完之后加入缓存区 add 提交到本地库commit git reflog/git log查看版本
3.7历史版本切换
-
查看历史版本 git reglog/log
-
版本穿梭
- git reset --hard 版本号
-
原理: 底层就是移动head指针
第四章 Git的分支操作
- 服务器 有开发环境 测试环境 线上环境
分支的例子 也相当与给每一个要修改的地方一个分支副本 修改完成后进行合并
4.1分支的好处
- 同时推进多个分支开发 提高开发效率
- 在各个分支开发中如果一个分支开发失败 不会对其他分支产生影响 失败的分支删除重新开始即可、
4.2 分支操作
- 查看分支 git branch -v
- 创建分支 git branch 分支名
- 切换分支 git checkout 分支名
- 分支合并 git merge 分支名 --把指定的分支合并到当前分支上
- 产生冲突
- 合并分支的时候,两个分支在同一个文件的同一个位置有两套不同的修改。Git无法替我们决定使用哪一个。必须认为决定新代码内容
- 修改之后需要提交到暂存区 需要加文件名
- 提交到本地库 不用加文件名
- 合并分支之后 被合并的分支不变 合并的分支改变 (A(B) =C ; A=C ;B=B)
- head指向哪 就说明要切换为哪个分支
- 当前是在哪个指针 是由hot-fix决定的
第五章 Git团队协作机制
5.1团队内的协作
拉取 pull
推送 push
克隆 clone
5.2跨团队的协作
第六章 GitHub的操作
网址: https://github.com/
6.1 创建远程仓库
登录 点击加号 第一个 输入远程库的名字 pubic 完成即可
6.2 远程仓库操作
-
创建远程库别名
-
git remote -v 查看别名
-
git remote add 别名(一般和本地保持一致) 仓库的链接
-
查看别名
-
- 第一个代表 pull 和clone 可以使用这个别名
- 第二个代表 push可以使用这个别名
-
推送本地代码的分支到远程库
- git push 别名 分支
- 成功后会有一个登录 点击浏览器登录 就行了 刷新github 得到本地库代码
- git push 别名 分支
-
拉取远程库到本地库
- git pull 别名 分支
- 拉取成功 在本地代码获得更新
-
克隆远程库到本地
- git clone 远程地址
- 克隆代码不需要登录账号的
- 克隆过程中做了三件事
- 拉取代码
- 初始化本地库
- 创建别名 origin
-
其他用户拉取到本地库 需要获取远程库所有者的权限才能拉取
- 在github内设置 邀请团队人
- 同意后即可拉取到本地库
- 并且团队拉取的库一致
-
跨团队协作
- 搜索 用户名/项目名
- 通过好友给网址 搜到
- 使用的时候 需要获取库 通过fork叉子工具插到本地来
- 可以在线修改 但是修改完之后 内部人看不到 仅自己可见
- 然后拉取请求 pullrequest 可以留言
- 然后远程库所有者审核 同意 然后就merge合并了
6.3 SSH免密登录
- 在用户文件打开 git命令行窗口
- ssh-keygen -t rsa -C 要免密的邮箱名 按三下回车
- 生成一段英文 在github账户设置中设置SSH免密密钥
- git pull 仓库文件git的地址 master 拉取数据 进行yes确认密码保存
- 可以直接使用 SSH的链接拉取和推送修改代码
第七章 IDEA集成Git
7.1 配置Git忽略文件
在C盘当前用户下面 新建git.ingore文件 进行配置
# 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
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
在.gitconfig文件中配置
[core]
excludesfile=C:/Users/liqing/git.ignore
7.2 配置Git程序
在idea中的设置中
文件->设置->version control->Git 对可执行文件git的安装路径 bin下的git.exe进行配置
7.3 初始化本地库
在idea中的VCS->导入到版本控制->import git ->选择路径 直接选择默认路径就行 ok
在文件夹会生成一个.git的文件夹
7.4 添加到缓存区
xml文件右键 Git->add就成了
文件右键 git add添加到暂存区
7.5 提交到本地库
文件右键 git commit提交到本地库
7.6 切换版本
找到版本的master 右键版本 checkout Revision ‘版本’ 进行切换
7.7 创建分支
- 第一种 就是文件右键 Git的Repsitory里的Branches进行创建
- 第二种 点击idea的右下角 显示的当前的分支默认为master -> +new Branch 新建并切换
7.8 切换分支
- 点击右下角 找到要切换的分支 进行checkout切换
7.9 合并分支
- 还是在右下角 点击其他分支 合并到当前分支 Merge into current —正常合并
- 如果同一位置 两个分支提交的不一样 合并的时候就会有冲突 这时候可以手动选择要合并的代码 点X去除 << >>箭头进行合并 自动提交到本地库了
第八章 IDEA集成GitHub
8.1 设置GitHub账号
- 在version找到GitHub 登录GitHub账号 也可以使用 token进行登录 在GitHub官网登录
- 进行个人用户的设置 ->development Setting ->personal access tokens->钩子要打满-> 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 ->最后在token进行登录
8.2 分享工程到GitHub
- VCS中导入版本控制 share Project on GitHub->别名和库名
- 自动帮你创建远程库 push代码过去
8.3 push代码到远程库
-
-
修改完代码后commit 提交 然后 文件右键 git->Repository->push进行推送
-
VCS里面->Git->Push
但是这样进行push是采用https的对网络要求很高
可以使用SSH免密登录进行使用
- 首先在远程仓库的代码位置 复制SSH链接
- 在VCS里的push进行Define Remote 命名新的名字 进行git的ssh免密链接确认
- 点击master->这一项 切换为SSH就行了 直接点击push
-
-
注意:
- push是把本地的代码推送到远程库,如果本地的代码跟远程库的代码版本不一致,push的操作是被拒绝的。也就是说,想要push成功,一定要保证本地库的版本要比远程库版本高!因此一个成熟的程序员在手动修改本地代码之前,一定会检查下远程库根本地库代码的区别!如果本地代码版本已经落后,切记要先拉去pull远程代码库,将本地代码更新到最新之后,然后再修改,提交,推送!
8.4 pull拉取代码到本地
- VCS git ->pull ->选择ssh拉取(也可以选用https拉取)
- 在代码拉取的时候 别改本地 如果本地也改了 远程也改了 会有一个代码合并的问题
- 如果pull拉取远程仓库代码到本地 如果远程库代码和本地库代码不一致 会自动合并,如果自动合并失败,还会设计手动解决代码冲突的问题
8.5 克隆本地库到本地
- 先把本地项目删掉
- 打开idea 在idea的初始化页面->Get from Version Control->选择Git->输入https或者ssh的url进行拉取到本地
第九章 国内的代码托管中心 码云
9.1 简介
- 它是开源中国基于Git的代码托管中心,网址 https://gitee.com/
9.2 注册
- 略
9.3 码云创建远程库
- 新建仓库 先新建私有仓库在修改为公共
9.4 IDEA集成码云
-
首先下载gitee 在设置中的插进中搜索 gitee 安装
-
在设置里的version Control里找到gitee然后进行登录 是邮箱和密码
-
-
把项目分享到Gitee上 在VCS里的 import into Version Control 里的share Project on Gitee
-
也可以直接把gitee的仓库地址复制一下 在IDEA进行push
-
选择项目文件右键 进行git的push
-
在VCS的git进行push
-
-
然后就可以选择origin-gitee进行push了
3. 把本地库修改 然后commit 然后进行push 远程库就会更新
-
拉取远程库的代码 VCS->git->pull->选择gitee刚才的别名 ->pull就行了
-
克隆代码
- 先把本地项目删掉
- 打开idea 在idea的初始化页面->Get from Version Control->选择Gitee->找到已经登录的gitee账号的仓库进行拉取到本地
9.5 码云复制GitHub项目
- 在gitee点击新建仓库 ->导入已有仓库
- 在github上面找到自己的仓库地址https类型的地址
- github更新内容时候 gitee可以点击仓库名称后面的圈进行同步
第十章 自建代码托管中心 GitLab
10.1 简介
局域网的代码托管中心
网址:https://about.gitlab.com/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)