【学习路径】Git

Git

一、Git介绍

免费开源的分布式版本控制(版本控制:一种记录文件内容变化,以便查阅特定版本修订情况的系统)系统。
GIt官网

分布式与集中式版本控制

集中式

  • 有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
  • 优点:能看到项目中其他人在干什么,管理也较为容易。
  • 缺点:服务器宕机谁都无法工作。中央服务器的单点故障。

分布式

  • 每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
  • 优点:解决了集中式的缺点,断网情况下也可以进行开发,每个客户端保存的是整个完整的项目,包含历史记录更为安全。
  • 无中央服务器,每个客户端在自己客户端做分布控制,客户端推送至远程库中,其余客户端去拉取远程库。若远程库挂掉了,在本地也可以做分布控制,也可以进行开发,做不了推送拉取而已。

Git工作机制

在这里插入图片描述

二、Git常用命令

01 设置用户签名

git config --global user.name 用户名
git config --global user.email 邮箱

说明:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。
在用户家目录下可查找到.gitconfig文件,以便查看用户签名。

02 初始化本地库

git init

结果:创建了一个.git非空隐藏文件

03 查看本地库状态

git status

04 添加暂存区

git add 文件名

将工作区的文件添加到暂存区

05 提交本地库

git commit -m "日志信息" 文件名

06 修改文件

经过vim 文件名修改文件之后,git status会显示已经修改。

07 历史版本

查看历史版本信息:

git reflog

查看版本详细信息:

git log

08 版本穿梭

git reset --hard 版本号 

Git切换版本,底层其实是移动的HEAD指针。

三、Git分支操作

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。

分支好处

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

分支操作

01 查看分支

git branch -v 

02 创建分支

git branch 分支名

03 切换分支

git checkout 分支名

04 合并分支

git merge 分支名

在当前分支下,“分支名”为要将这个分支合并到当前的分支。

合并冲突
  • 冲突产生的表现:后面状态为 MERGING
  • 冲突产生的原因: 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
解决冲突
  • 编辑有冲突的文件,删除特殊符号,决定要使用的内容

     特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix
    
  • 删除完成后git add添加到暂存区

  • git commit -m "日志信息" 来执行提交,不能带文件名。

四、Git团队协作机制

  • 团队内协作
  • 跨团队协作

五、GitHub操作

01 创建远程仓库

GitHub官网--->new repository--->输入仓库名--->创建

02 创建远程仓库别名

查看当前所有远程地址别名:

git remote -v

创建别名:

git remote add 别名 远程地址

(远程地址太长,可以用别名来代替)

03 推送本地库到远程库

git push 别名 分支

04 拉取远程库到本地库

git pull 别名 分支

05 克隆远程仓库到本地

git clone 远程地址

clone 会做如下操作:1. 拉取代码 2. 初始化本地仓库 3. 创建别名

六、IDEA集成Git

01 环境准备

配置Git忽略文件

why? -----> 与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异
怎么忽略?

  • 创建忽略规则文件 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
  • 在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)
[user]
    name = Layne
    email = Layne@atguigu.com
[core]
	excludesfile = C:/Users/asus/git.ignore

注意:这里要使用"正斜线(/)“,不要使用"反斜线()”

02 定位Git程序

建立Maven工程->在菜单栏File->Setting->搜索栏搜Git,配置Git的安装路径。

03 初始化本地库

VCS中选择Create Git Repository,然后选择要创建Git本地仓库的工程。

04 添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区。

05 提交到本地库

Git ->Commit

06 切换版本

![在这里插入图片描述](https://img-blog.csdnimg.cn/d43e962a224d43178e8026c30b3a6afb.png

07 创建分支

选择 Git,点击 Branches 按钮,在弹出的 Git Branches 框里,点击 New Branch 按钮,填写分支名称。

08 切换分支

在 IDEA 窗口的右下角,切换到 master 分支(点击checkout)

09 合并分支

  • 在当前分支上,点击另一个分支的merge into current。
  • 如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。
  • 若两个分支都修改了代码,在合并分支的时候就会发生冲突。点击 Conflicts 框里的 Merge 按钮,进行手动合并代码。手动合并完代码以后,点击右下角的 Apply 按钮。代码冲突解决,自动提交本地库。

七、IDEA集成GitHub

01 设置GitHub账号

Settings->Version Control->GitHub
添加GitHub账号,若404,可以换一种Token方式,即在GitHub官网上,settings->Developer settings->Personal access tokens

02 分享项目到GitHub

share Project on Github

03 push推送代码到远程库

push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

04 pull拉取远程库到本地库

pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
### 05 clone克隆远程库到本地

八、码云Gitee

码云是开源中国推出的基于 Git 的代码托管服务中心,使用方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。
Git官网

01 账号注册

02 码云创建远程库

官网上直接点击加号,填写仓库名称等。

03 IDEA集成码云

安装插件->连接码云
将本地代码 push 到码云远程库:自定义远程库链接->给远程库链接定义个 name,然后再 URL 里面填入码云远程库的 HTTPS 链接即可(码云在国内,无需采用SSH)->然后选择定义好的远程链接,点击 Push 即可。

04 码云复制 GitHub 项目

加号->导入已有仓库

九、GitLab

------------------------------------------------------我是分隔符-------------------------------------------------
参考内容:

第一次写完博客,如有不足请指正。

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值