Git 快速使用手册(二)

Git 快速使用手册(二)

Git 快速使用手册(一)

五、分支(branch)

5.1 概念

在版本控制过程中,使用多条线同时推进多个任务。这里面说的多条线,就是多个分支。

Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是master。 在多次提交操作之后,其实已经有一个指向最后那个提交对象的master分支。 master分支会在每次提交时自动向前移动。

5.2 分支的实际意义

使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。如果某个分支开发失败,可以直接删除该分支,不会影响其它分支。

5.3 分支的基本操作

  1. 查看分支
git branch -v
  1. 创建分支
git branch [name]

  1. 切换分支
git checkout [branchname]

在这里插入图片描述

  1. 删除分支
git branch -d [branchname]

测试:

  1. 进入branch01分支,创建Test4.txt文件并添加内容

  2. 添加至暂存区并提交至本地库

  3. 查看分支

  1. 切换到主分支,查看文件列表

结论:各分支的修改与其它分支不相干

5.4 分支合并与冲突

  1. 合并分支
git merge [branchname]

测试:

  1. master分支中创建Test4.txt文件并添加和branch01分支Test4.txt文件中不同的内容
  2. 添加至暂存区并提交至本地库
  3. master分支中合并branch01分支

❀ 什么时候会出现冲突问题?

两个将要合并的分支,在相同文件的相同位置内容不一致时。

冲突的解决:

  1. 将所有冲突文件进行修改
  2. 添加到暂存区
  3. 执行命令git commit -m "msg"命令

注意:commit命令不可以带文件名

六、远程库

6.1 本地库与远程库的交互

6.2 初始化本地库和创建远程库

测试:

  1. 创建文件夹并初始化为本地库

  1. 创建 GitHub 远程库

  1. 利用git remote add [originname] [originUrl]命令添加远程地址
  2. 利用git remote -v命令查看远程地址

  1. 创建任意一个文件并同步至本地库
  2. 利用git branch -M main命令将master分支改名为main

6.3 push操作

测试:

  1. 利用git push [orginname] [branchname]进行推送操作

  1. 进入 GitHub 查看之前创建的远程库

总结:可以看到远程库的内容发生了更新

6.4 clone操作

测试:

  1. 创建一个新的文件夹并进入其中
  2. 利用git clone [orginUrl]命令进行克隆操作

在这里插入图片描述

❀ 克隆操作完成了什么?

  1. 初始化本地库
  2. 将远程库内容完整地克隆到本地

6.5 Github 的邀请(invite)操作

测试:

  1. 在克隆的仓库中创建新的文件Demo.txt,同步到本地库
  2. 将本地库推送到远程库

可以看到这次push操作没有进行登录验证,原因是 Git 在使用时,本地有缓存

  1. 通过控制面板,进入到 Windows 的凭据管理器,将 Git 的凭据删掉

  1. 追加内容到文件Demo.txt,同步到本地库
  2. 再次将本地库推送到远程库,本次提示登录时登录其它 Github 账号(user2)

可以看到这次push操作发生了403错误,原因是该账号没有加入团队,因而无权访问

  1. 登录原先的 Github 账号(user1),打开对应项目,点击Settings,点击Manage access

  1. 点击invite a collaborator,并输入成员的信息

  1. 点击复制邀请连接

  1. 退出登录,再登录被邀请人的账号(user2)

  2. 粘贴链接进入,点击同意邀请

  1. 再次以协作者身份进行push操作,发现push成功

6.6 对远程库的拉取(pull)操作

  • 6.1节图示中的pull操作,可以分为两步执行——fetch操作和merge操作

测试:

  1. 返回原来的仓库,通过执行git fetch orgin命令,将远程库抓取到本地

  1. 通过git checkout orgin/main命令,切换到orgin/main
  2. 查看内容,确认无误后可以返回main,通过git merge orgin/main命令进行合并操作

提示:以上两种操作(fetch操作和merge操作),在确认没有风险时,可以直接用pull操作(即git pull orgin)代替。

6.7 协作开发时的冲突与解决

测试:

  1. 在 user1 的本地库下,创建文件Test.txt,添加些许内容,并推送至远程库

提示:在推送之前记得切换到 user1 的账号

  1. 在账号2的本地库下,进行pull操作

  1. 追加内容到该Test.txt文件中

  1. 执行push命令

提示:在推送之前记得切换到 user2 的账号

  1. 进入账号1的本地库,追加内容到该Test.txt文件中

  1. 执行push命令

提示:在推送之前记得切换到 user1 的账号

这里会发生错误——提示你当前远程库和本地库的内容有冲突,需要先执行pull操作进行冲突解决。

  1. 执行pull命令

  1. 查看发生冲突的文件Test.txt,解决冲突

  1. 同步到本地库

注意:和之前分支冲突的解决一样,最后的commit操作不要带文件名

  1. 推送到远程库

6.8 跨团队协作的交互

跨团队协作主要操作forkpull requestmerge pull request皆在 GitHub 上完成,具体可查看 GitHub 的官方文档:collaborating-with-issues-and-pull-requests

七、IntelliJ IDEA 集成 Git

7.1 配置 Git 路径

7.2 初始化本地库

步骤:

  1. 创建一个项目(模块)

  2. 点击菜单栏的VCS,找到并点击Create Git Repository,即可创建完成

7.3 添加到暂存区

步骤:

  1. 在模块中创建一个文件Demo.txt

可以看到 IDEA 自动弹出了一个Add操作的提示,我们可以点击Add,并且勾选Remember don't ask again选项,以便使其自动提交。当然,我们也可以选择Cancel,以下面的方式,进行手动提交。

  1. 右键点击新创建的模块

  2. 找到Git选项,点击Add,即可将模块中的内容进行提交

提示:可以看到,Add选项后面有 IDEA 默认的快捷键——Ctrl + Alt + A,我们可以采用这个快捷键进行更方便的提交。当然,也可以设置自己的快捷键,或者直接按照步骤一中的方式,使其自动提交。

7.4 提交到本地库

步骤:

  1. 点击上图中的Commit选项,或者直接采用 IDEA 的默认快捷键Ctrl + K,跳转到提交界面

  1. 上图Commit Message一栏,即之前的-m选项的内容,输入相应信息后点击Commit即提交完成

7.5 推送本地库到 Git 托管服务平台

步骤:

  1. 下载 GitHub 或 Gitee 的 IDEA 的插件(本次采用国内速度较快的 Gitee)

注意:2020年10月起,GitHub 的主分支master更名为main。为保障一致性,建议 IDEA 将主分支名称配置为main

提示:对于 Gitee 上已有的项目,若想将主分支名称更改为main,可以基于主分支创建新的分支main,然后设置为主分支,并将原先的master分支删除,由此即可完成主分支的更名操作。

  1. 点击菜单栏的VCS,找到并点击Share Project on Gitee

  1. 权限验证后,输入相应信息,点击Share即可完成推送

7.6 克隆远程仓库到本地

步骤:

  1. 点击菜单栏的File,点击New选项里的Project from Version Control...,跳转到

  1. URL输入框中输入你想要克隆的项目的URL,点击Clone完成克隆

7.7 使用 IDEA 解决冲突问题

步骤:

  1. 新建一个 Java 项目,按照以上步骤将项目推送到 Gitee 平台
  2. 创建一个Person

  1. 添加到暂存区,提交到本地库,推送到远程库

  2. 在 Gitee 网站上为 Person 类添加 weight 属性

  1. 输入提交信息并点击提交

  1. 在 IDEA 中为Person类添加height属性,添加到暂存区,提交到本地库

  1. 使用快捷键Ctrl + Shift + K进行Push操作
  2. 可以看到,IDEA自动弹出了Push Rejected窗口,这是因为我们在其Push之前,对远程库进行了修改,导致远程库内容有本地不存在的内容,即发生了版本冲突

  1. 点击Merge,进入Conflicts窗口

  1. 选中冲突列表中你想要解决的文件(这里只有Person.java一个冲突),点击Merge...,进入Merge Revision for XXX窗口

  1. 解决冲突问题后点击Apply
  2. 刷新在 Gitee 网站上的 Person 类,发现冲突得以解决

八、总结

  1. 本手册中涵盖了日常开发中常用的 Git 操作,基本满足了快速入门 Git 的作用。

  2. 从第七章的内容可以看出,使用 IntelliJ IDEA 操作 Git 非常的简单方便,日常开发中足以够用。不过,一些不太常见的问题,还是要借助Git Bash去完成,这里提供了 Git 的官方手册,以供参考:https://git-scm.com/book/zh/v2

  3. Git Bash本质上是一个 MinGW ,日常中除了作为 Git 的主要操作窗口,还可以利用其 MinGW 的本质特性,用来执行 Linux 命令等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值