Git基础:第九、十章 Git可视化工具 &Git团队协作以及合并时的diff工具

第九章 Git 图形工具

9.0 前言:为什么要使用 Git GUI ?

可视化图形界面更符合用户的习惯。
实际项目研发过程中,开发人员通常只会使用几个常见的命令进行协同工作。从之前的章节,我们已经深入了解到了 Git 的基本原理和众多命令,有些命令由于不常使用,较难记忆。
Git GUI 为用户提供了一个可视化的图形界面,允许项目开发者通过简单的点击便捷地使用Git,从而不需要在终端上手动输入繁多的文本命令。这样一来,开发者能够更高效、更便捷地进行项目版本管理。
三种主流的 Git GUI 图形化工具

GitHub Desktop
TortoiseGit
Vscode Git

本教程中,只介绍了部分Git GUI 图形客户端,更多详细内容可以查看Git官网

9.1 GitHub Desktop

Github Desktop 正是 Github 推出的开源 Git GUI 图形客户端。可以在Windows和Macos平台上进行使用,暂不支持Linux平台。

9.1.1 基本使用

9.1.1.1 登录

完成下载后,第一次打开软件会直接要求登录个人 Github 账户进行授权,并配置用户名和邮箱(识别个人创建的commits提交)。
如果没有找到让你登录 GitHub 账号的地方,你需要在 File -> Options -> Accounts -> Sign in 登录。
在完成基本配置后,会出现如下界面:
在这里插入图片描述

9.1.1.2 建立首个仓库

初次登陆会看到三个选项,也就是建立自己的第一个repository。

建立一个repo可以通过三个方式:

  • clone a repository:克隆一个repo -
  • create new repository:建立一个新的-
  • repo add a
    local repository:添加一个本地的
    repo
问题场景:
	软件:GitHubDesktop
	环境(出现问题的场景):代码提交/ 新创建了项目,第一次提交代码
问题描述:
	1、Cloning into 'D:\git_my_project\faster-git'...
	fatal: unable to access 'https://github.com/datawhalechina/faster-git.git/': schannel: failed to receive handshake, SSL/TLS connection failed
	Would you like to retry cloning ?
	解决办法:
    打开Git Base Here,输入下面的命令,回车即可
    git config --global http.sslBackend "openssl"执行

	2、Cloning into 'D:\git_my_project\faster-git'...
	fatal: unable to access 'https://github.com/datawhalechina/faster-git.git/': OpenSSL SSL_read: Connection was reset, errno 10054
	Would you like to retry cloning ?
	解决办法:(参考https://www.cnblogs.com/fairylyl/p/15059437.html)
	更新DNS缓存。
	在cmd中输入以下命令:
	ipconfig /flushdns
	3、unable to access 'https://github.com/Lily0630/faster-git.git/': OpenSSL SSL_read: Connection was reset, errno 10054
	解决办法:
	解除SSL验证:git config --global http.sslVerify "false"
	执行之后要重启git bash,不然这一条不会生效。这一点在很多文章中都没有点出。
9.1.1.3 提交Pull Request

fork
由于在实际开源项目贡献的过程中,开发者往往并没有直接修改仓库内容的权限,因此需要先对目标仓库进行 fork操作,再通过提交PR的方式进行代码的贡献。
在下图中,可以通过左下角的warning标志⚠,判断用户是否有目标仓库的权限。如果没有写入权限,点击create a fork,将目标仓库复刻为自己的仓库,进行随意的修改。
先新建or修改原仓库重点东西,左下角就会出现,点击
在这里插入图片描述

在 Github Desktop 中完成fork后,登录 Github 网页就可以在个人仓库中看到目标仓库的复刻版,

commit & push
完成了fork后,当前仓库就会索引到用户个人的复刻仓库,对应于本地指定目录下的文件。此时,用户拥有复刻仓库的所有权限,包括修改,删除,更改可视状态等等。接下来,就可以对本地分支中的代码进行修改,更新而当操作,再push到用户个人的复刻仓库中。

此时,登录 Github 网页版就会发现本地修改的代码已经上传到云端,个人复刻仓库进行了本地同步。

PR
在完成个人仓库的代码更新后,还要注意个人仓库的分支和目标分支的先后情况,如果目标分支领先于fork分支,需要先通过fetch upstream操作进行更新后,再提交PR。
点击Contribute,并Open pull request,向目标仓库提交上传申请。

9.2 TortoiseGit

TortoiseGit 简称 tgit, 中文名海龟 Git ,是一个开放的 Windows 系统下的 Git 版本控制系统的源客户端,提供有中文版支持。由于它不是针对特定IDE(如Visual Studio、Eclipse或其他)的集成,所以可以与任何开发工具和任何类型的文件一起使用。与 Github Desktop 一类的传统图形化交互不同,与 TortoiseGit 的交互主要利用 Windows 资源管理器的上下文菜单,因此不需要打开任何软件,十分轻量、便捷。

9.3 Vscode Git

在实际项目开发过程中,往往遇到的场景是项目开发者直接通过代码编辑器进行Git操作,在本章中,主要介绍Vscode中Git的一些基础的操作。
导入项目文件,选择侧边栏的第三项,就可以看到以下内容。
##9.4 本章小结
在本章的前言部分,通过比较在日常应用场景下终端命令和图形化界面的优劣,引出了 Git GUI 图形化应用。再详细介绍了三种类型的 Git GUI 图形化应用,Github Desktop、TotoiseGit以及Vscode Git。与传统的命令行不同,图形化界面为项目开发者提供了更为轻松、高效的方式利用 Git 进行项目版本管理。在下一章中,将详细介绍Git团队协作以及合并时的diff工具。

第十章 Git团队协作以及合并时的diff工具

10.0 引言

在许多的多人组队(编程)任务、尤其是需要进行交叉修改代码中部分段落的时候,Git这样一个分布式版本控制系统的优势就体现出来,或许这也是一些人开始接触和使用Git的原因。

10.1 代码(提交)推送到远程仓库的一般方式

10.1.1 粗放式的提交:加入仓库协作者,即可获得直接push的权限(优点:更方便&快捷)

仓库管理员(一般是仓库的创建者或者拥有者)先在Github上仓库的Settings页面中点击下图的Add People按钮,添加合作者,
约定大致的Commit Message(提交信息)的格式,有fix,update,merge等词语放在提交消息的开头,来大致表示这次提交的大致内容。

10.1.2 标准式的提交与合并:运用Pull Requests(优点:更严谨&利于把控每个版本的质量。例如Forking 工作流)

,也就是先把仓库Fork到个人账号,(为了避免误操作影响主分支,往往还需设置禁用向主仓库直接push,也就是禁用前一节所述的粗放式提交),然后再用PR请求的方式将fork的修改提交给仓库管理员审核,审核通过之后再合并入主分支;可以参考atlassian文档
others包括非课程相关的改动,如本README.md中的变动,.gitignore的调整等。
实际上一些更大型的项目或者企业,可能会涉及到统筹配置多个仓库及其参与者的权限,因此会用到Projects以及Organization等功能。

10.2 代码比较与冲突处理

与团队协作相伴的往往就是修改冲突(Conflit)的问题了,第三章中已经提到了一些处理冲突的一般方法(例如手动修改和暂时终止Merge进行排查),这里介绍一个著名的用于进行代码比较的软件——Beyond Compare(或者简称bc,其官网为https://www.scootersoftware.com/download.php ,下文中所使用的版本为4.4,其他版本可能略有差异,比如对一些路径中含有的版本号数字可能需要微调,但主要功能基本一致)。

10.2.1 配置bc

10.2.2 使用bc

课程地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值