小白入门教程 Git + TortoiseGit + GitLab

什么是 Git?

每个开发者应该都遇到过代码丢失的问题,或者想还原代码但是没有做过备份的情况。Git 这样的工具就是用来解决这些问题的(当然还可以帮我们做团队协作、分支管理、多设备文件同步)。

大名鼎鼎的 GitHub 就是一个使用 Git 技术的开源社区。

Git 是一种分布式版本控制系统。所谓“分布式”是相对于“中心式”而言的,SVN 就是一种典型的中心式版本控制系统。

这个“中心”就是一个特别的服务器,它是一个中央仓库,每个开发者从这个中央仓库下载最新版的项目到本地、然后开发、然后上传给中央仓库。

这样来看,中心式系统特别依赖这个中心,如果本地与中心的连接出问题、或中心本身出了问题,都可能影响到项目开发。

而 Git 理论上是没有中心的,每一个设备都有本地仓库,任何一个设备的本地仓库出问题对其他设备都没有影响。

而且,每一个设备都可以创建分支,Git 强大的分支管理也是它的价值所在。
在这里插入图片描述
看上图,Git 在你的电脑上为每个项目建了个本地仓库(项目就是一个文件目录,里面的文件都可以交给 Git 管理),每当你的项目完成一小段任务后就可以提交给本地仓库。

然后你在服务器上建一个远程仓库(这里的服务器只是为了多台设备交流方便而设立的,本质上 Git 系统不依赖它,与中心式系统不是一回事),你将本地仓库的文件推送给远程仓库,其他人(设备)从这个远程仓库获取文件到他们的本地仓库,这样就实现了多个设备的文件同步。

这是 Git 的基本概念,接下来我们开始动手实践!

准备工作
在使用 Git 之前你还有很多事情要做。跟着下面的步骤一步一步来吧。

安装 Git
https://www.git-scm.com/downloads

打开页面下载 Git 安装程序并运行。
在这里插入图片描述
安装时你一直点击 Next 即可。在上图的选择组件的界面,保持默认选择就可以了。

其中 Git Bash 是 Git 命令行工具,Git GUI 是图形界面工具,它们可以集成到 Windows 资源管理器的右键菜单里。

安装 TortoiseGit

然后安装 TortoiseGit——这是为 Git 做的用户界面程序,方便我们这样的小白使用的。
https://tortoisegit.org/download/

打开上面的页面下载 TortoiseGit 安装程序并运行,安装完成默认会自动运行“First Start Wizard”,这里先取消运行向导程序。

如果你英语和我一样渣,现在可以在 TortoiseGit 下载页面下方找到中文语言包安装一下。

设置 Git 用户信息

在桌面空白的地方右键鼠标,弹出菜单应该有这些选项了:
在这里插入图片描述
选择 TortoiseGit->设置,打开设置窗口,窗口左侧选择“Git”,在右边填写用户名称和邮箱(默认会弹出一个什么什么提示窗口,关闭即可)。

这个用户信息就是将来使用 Git 时显示各种操作是谁干的(这样如果是团队协作的话就可以知道是谁在乱搞项目了)。

注册 GitLab 账号

GitLab 又是什么呀?嗯……你应该听说过 GitHub 吧?GitLab 与 GitHub 不同之处就是它提供免费的、私有的 Git 服务,我们可以用它做远程仓库(当然如果你就是想开源可以选择 GitHub)。

注册一个 GitLab 账号吧(网站速度可能比较慢,但服务速度还是可以的)。

创建 SSH 密钥

(⊙﹏⊙) 再坚持一会儿就好了!我们需要使用 SSH 密钥来保证连接 GitLab 的安全性。SSH 密钥包含公钥和私钥,公钥交给 GitLab,私钥你要藏在不为人知的地方。现在我们来造钥匙吧!

在系统的所有应用中找到并打开 TortoiseGit->PuTTYgen 工具,点 Generate 按钮,然后在 Key 下面的空白长方形区域内疯狂来回移动鼠标,进度条满后就看到密钥生成好了,此时界面是这个样子:
在这里插入图片描述
注意有空行“Key passphrase”,这是设置密码的地方,推荐设置一个密码(下一行是确认密码),这样使用起来更安全。

然后就可以将公钥交给 GitLab 了。可以直接全选复制那一大串乱码,或者点击“Save public key”保存成文本文件以便以后使用(注意文本文件中公钥是不包含注释部分的内容;此时不要关闭窗口!),然后打开 GitLab 页面,点页面右上角你的头像->设置,选择左侧“SSH 密钥”,在右侧的 Key 下面粘贴公钥,然后起个名字(可以用设备或姓名起名),点击“添加密钥”。大概这个样子:
在这里插入图片描述
回到 PuTTYgen 窗口,点击“Save private key”保存私钥到那个不为人知的地方。现在可以关闭这个窗口了。

体验 Git + GitLab

在 GitLab 上创建项目

在 GitLab 页面顶栏点击“+”符号创建一个 Group(所有项目都是隶属于 Group 的),然后在创建好的 Group 里创建你的第一个项目,记得勾选“Initialize repository with a README”。接下来用这个项目来练习基本 Git 操作。
在这里插入图片描述
创建项目之后复制项目的 URL,点击下图中的按钮即可:
在这里插入图片描述

克隆项目到本地

在你的 SSD 硬盘上找一块空地右键鼠标,选择 “Git 克隆”。
在这里插入图片描述

在这个窗口内粘贴 URL 并确认本地目录,然后设置你在不为人知的地方放的 SSH 私钥路径,点击“确定”(如果你之前设置过密钥密码,此时应该会出现密码输入窗口,输入密码即可)。

然后你就看到之前在 GitLab 上创建的项目被复制下来了!打开目录可以看到之前自动创建的 README.md 文件。

添加新文件

现在在 README.md 旁边创建一个文本文档。打开文档输入“Hello Git!”保存并关闭。在目录下空白区域右键鼠标,选择“Git 提交 -> master”。

这个选项的含义是:将本地的修改内容提交到本地仓库主分支(分支类似时间线的含义,Git 仓库默认有一个主分支,你可以从某个时间节点开始分裂出另一条分支,不同分支之间是平行世界互不干涉,除非你企图合并它们)。
在这里插入图片描述
Git 并不会自动将所有处于项目目录下的文件纳入管理,哪些文件需要被 Git 管理需要用户自己指定。在这里,我们勾选窗口下方“显示未受版本控制的文件”,然后勾选需要添加的文件。

最后添加本次提交的日志信息,就可以提交了。
在这里插入图片描述
看到这个蓝色的“成功”就代表操作正确了。

还原文件

打开刚才添加的文本文档,删除所有内容保存并关闭文档。鼠标右键空白处,选择TortoiseGit ->还原,在弹出的窗口中勾选文本文档,然后点“确定”。再次打开文档,发现被删除的文本回来了!

推送到远程仓库

现在刷新 GitLab 页面,刚才添加的文本文档为什么不在列表里呢?因为 Git 提交只是提交到本地仓库,如果希望同步给远程仓库然后再同步给其他设备,就需要执行推送命令。右键 TortoiseGit->推送:
在这里插入图片描述
这里远端“origin”指的就是 GitLab 仓库,这是默认名称。直接点击“确定”即可推送。等操作成功后刷新 GitLab 页面,会看到添加的文本文档。
在这里插入图片描述
这里远端“origin”指的就是 GitLab 仓库,这是默认名称。直接点击“确定”即可推送。等操作成功后刷新 GitLab 页面,会看到添加的文本文档。
在这里插入图片描述
现在我们在当前使用的设备上将这个删除行为同步下来。右键 TortoiseGit->获取(注意不是拉取):
在这里插入图片描述
直接点击确定。然后你会发现……本地文件没有被删除?别急,右键 TortoiseGit->版本分支图:在这里插入图片描述
origin 就是远程仓库的意思,你可以看到本地主分支落后于远程主分支了。刚才获取操作只是修改了远程分支,没有修改本地分支。现在需要执行一次“合并”将远程分支与本地分支合并。右键 TortoiseGit->合并:在这里插入图片描述
直接点击“确定”。执行后可以看到文本文件成功删除了。再打开版本分支图,可以看到本地分支和远程分支合并了。
在这里插入图片描述

解决冲突

直接通过 GitLab 页面编辑器修改 README.md 内容,输入“remote”;在本地通过记事本修改 README.md 内容输入“local”。现在再执行 “获取”;然后再执行“提交”;现在打开版本分支图:
在这里插入图片描述
可以看到远程分支和本地分支分道扬镳了!现在我们再执行“合并”,会看到合并失败:
在这里插入图片描述
失败的原因是,两个分支上 README.md 的修改内容冲突并且无法自动合并。同时看到一个提示窗口:在这里插入图片描述
提示我们解决冲突后再提交。关闭这些窗口,然后右键 TortoiseGit->解决冲突:在这里插入图片描述
选中冲突文件,右键选择“编辑冲突”
在这里插入图片描述
在这个编辑冲突的窗口中,左上角是远程分支的文件内容,右上角是本地分支的文件内容,下方是合并后的内容。在每一块内容中,红色部分是冲突内容。右键红色区域,选择你要保留的版本,然后保存、标记已解决冲突、退出。

现在还需要执行一次提交,注意删除自动添加的日志中 # 开头的行。提交完成后执行推送,将修改推送到远程仓库。现在再查看版本分支图,可以看到本地分支和远程分支合并了。

结语

基本操作已经说完了,你现在和我一样膨胀了,接下来可以尝试乱搞一通创造问题并解决问题。下面有几个问题你可能想知道答案。

右键菜单里“TortoiseGit->拉取”是什么意思?
“拉取”相当于先“获取”然后强制“合并”,也就是说如果存在冲突文件也会合并冲突文件。所以“拉取”不安全,应该尽量使用“获取”然后手动“合并”,手动解决可能发生的冲突。

Git 本地仓库到底在哪?
设置你的资源管理器以显示隐藏文件,打开你的项目目录,可以看到一个名为 .git 的隐藏文件夹,这就是当前项目的本地仓库了。因此,移动项目的位置不会影响到 Git 的管理,本地仓库就在项目目录里面。

Git 的确很厉害,现在我该怎么把项目同步到另一台电脑上呢?
打开另一台电脑,根据这篇文章“准备工作”部分安装程序、创建 SSH 密钥并将公钥添加到你的 GitLab 账号下,复制 GitLab 项目 URL 然后执行“Git 克隆”就可以了。

将来如果设备丢失、或者团队成员离职,为了保证安全,你可以在 GitLab 上删除对应设备或员工的 SSH 公钥即可。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值