【Git开发教程 四 —— Git远程库交互】

简介: 【Git开发教程 四 —— Git远程库交互】
上篇文章重点介绍了分支的操作,包括创建分支、合并分支和冲突的解决。这样,关于本地库的基本操作就讲解完了,本篇文章将对本地库与远程库之间的交互作一个讲解。

<br/>

创建GitHub账号

对于远程代码托管中心,我们有两个选择:码云和GitHub,这里我以GitHub为例进行讲解。

大家先注册一下GitHub的账号,官网地址:https://github.com/
具体注册步骤就不介绍了,非常简单。

<br/>

如何创建远程库

注册完成后我们登录自己的账号,进入主页:
在这里插入图片描述
这是我的主页,下面介绍如何在GitHub中创建远程库。
在这里插入图片描述
你可以点击左边的绿色按钮新建仓库,也可以先点击右上角的加号,然后点击New Repository新建仓库。

然后跳转到该界面:
在这里插入图片描述
仓库名必须填写,仓库描述可填可不填,这里勾选公共仓库,因为GitHub中的私有仓库是收费的,然后初始化README文件我们也不选,直接点击绿色按钮完成创建。

在这里插入图片描述
这样仓库就建好了,里面没有任何东西。

<br/>

如何将本地库推送到远程库

创建好远程库后,我们重新创建一个本地库来进行测试(仓库名为TestGitHub):
在这里插入图片描述
本地仓库名不用非得和远程仓库名一致,但为了区分,通常都设置为同一个名字。

这样本地库和远程库都创建好了,接下来如何将本地库推送到远程库呢?
我们需要获取远程库的地址,复制如下内容:
在这里插入图片描述
这就是远程库的地址,通过该地址我们就能够将本地库推送上去。

在TestGitHub文件夹内启动Git终端,先初始化仓库,然后提交一下内容:
在这里插入图片描述
这里有一个地方前面忘了说了,顺便提一提,当工作区的文件特别多的时候,采用git add [文件名]的方式显然太麻烦了,这时候我们可以使用指令git add .来将当前目录下的所有文件添加到暂存区,注意add.之间有一个空格。

提交完成后,我们就能通过远程库地址将本地库推送上去了,执行指令:

git push https://github.com/blizzawang/TestGitHub.git master

push表示推送,push后面跟上远程库的地址,地址后面写上需要推送到的分支,因为是新创建的本地库,只有master分支,为了与本地库对应,在远程库也创建master分支。

执行指令后,会弹出该页面让你输入用户名和密码,正确输入点击Login即可。
在这里插入图片描述
在这里插入图片描述
这样就表示推送成功了,我们回到GitHub页面,刷新一下网址:
在这里插入图片描述
当提交操作特别频繁的时候,经常粘贴远程库地址显然又费力又容易出错,为此,Git提供了一个方式,可以给远程库地址起一个别名。

我们可以先使用该指令查看一下目前是否有设置别名:

git remote -v

发现终端是没有任何反应的,下面执行该指令对远程库地址起一个别名:

git remote add origin https://github.com/blizzawang/TestGitHub.git

add后面跟上别名,一般起的别名即为:origin。

别名后面跟上远程库地址,再次查看是否设置了别名:
在这里插入图片描述
这次就有了,我们可以通过别名来推送本地库了,指令如下:

git push origin master

这里的origin就代表了一长串的远程库地址。

<br/>

如何将远程库克隆到本地

学会了如何键本地库推送到远程库,我们还需要掌握如何将远程库克隆下来,重新创建一个文件夹,作为另外一个工作区(名字为TestGitHub_2):

此时我们在该文件夹下启动Git终端,然后执行指令:

git clone https://github.com/blizzawang/TestGitHub.git

clone后面跟上需要克隆的远程库地址。

如果不知道远程库地址,可以在这里找到:
在这里插入图片描述
执行结果:
在这里插入图片描述
这样克隆就完成了,我们查看一下TestGitHub_2文件夹:
在这里插入图片描述
整个项目就下来了,同时该项目还携带了.git目录,就无需我们自己去初始化仓库。

克隆项目到本地有三个效果:

  1. 完整地把远程库下载到本地
  2. 创建origin远程库地址别名
  3. 初始化本地库

克隆完成后,我在克隆下来的项目中新建一个test111.txt文件模拟开发过程:
在这里插入图片描述
接下来我们提交一下该操作:
在这里插入图片描述
提交完成后,我们尝试着将该本地库推送到远程库,执行指令:

git push origin master

此时又会弹出登录界面让我们输入用户名和密码,这里我再输入另外一个账户模拟另外一个开发者的身份:
在这里插入图片描述
按照之前的想法,这个开发者还没有加入到项目团队中,是不能直接进行推送的,看执行结果:
在这里插入图片描述

<br/>

邀请其它开发者加入项目团队

要想让其它开发者能够将本地库推送到远程库,我们得让该开发者进入项目团队,来到GitHub网页:
在这里插入图片描述
点击仓库中的Settings进入设置页面:
在这里插入图片描述
先点击左边的Manage access,然后点击下方的绿色按钮,此时弹出一个搜索框:
在这里插入图片描述
在搜索框内输入另外一个账户的用户名,下面就显示出了该用户,然后点击该用户:
在这里插入图片描述
接着点击加入项目。

还没完,在底下点击如下按钮:
在这里插入图片描述
就复制到了邀请链接,此时把邀请链接发送给你准备邀请的人,让对方访问该链接就可以了,这里我是自己演示,所以我切换成了另一个GitHub账户然后访问该链接:
在这里插入图片描述
点击接受即可。
现在我们以另一个开发者的身份重新推送一下本地库:
在这里插入图片描述
推送成功,刷新GitHub页面:
在这里插入图片描述
新操作也进来了。

会发现,第二次推送的时候系统并没有要求我们去输入用户名和密码,其实是系统自动帮你记录了:
在这里插入图片描述
如果想切换账户,把原来的凭据删除,下次推送就又会让你输入用户名和密码了。

<br/>

如何拉取远程库

我们暂且将最开始推送远程库的开发人员称为程序员A,另一位开发人员称为程序员B。

那么现在的情况是,程序员B克隆了程序员A的远程库到本地,并在本地进行了修改,然后推送到了远程库。

此时程序员A若想得到程序员B修改的代码,就需要从远程库进行拉取代码。

首先我们需要回到程序员A的工作区,即:TestGitHub文件夹。在该文件夹下启动Git终端,执行指令:

git fetch origin master

执行结果:
在这里插入图片描述
该指令会将指定地址的远程库下载到本地,但是这个时候工作区的文件内容是没有改变的,可以查看工作区:
在这里插入图片描述
它将下载的内容放到了一个名为origin/master的分支上,你可以切换到该分支看看是否和远程库一致,这里我就不演示了。

所以我们还需要一个合并的操作,执行指令:

git merge origin/master

在这里插入图片描述
查看工作区:
在这里插入图片描述
拉取成功。

Git还为此提供了一个更加方便的拉取方式,指令为:

git pull origin master

执行该条指令相当于先执行了fetch,然后执行merge,两者合并为一次操作。

<br/>

解决合并冲突

在讲解本地库的分支操作时,我们便介绍了该如何去解决合并所产生的冲突,这里的协同开发同样可能会产生一系列的冲突问题,解决方法是类似的。

举个例子,程序A对项目中的test.txt文件进行了修改:
在这里插入图片描述
修改完成后,我们把本次操作提交一下:
在这里插入图片描述
提交完成后,把本地库推送到远程,执行指令:

git push origin master

此时查看远程库:
在这里插入图片描述
推送是成功的。

然后程序员B也对test.txt文件进行了修改:
在这里插入图片描述
同样将操作提交一下:
在这里插入图片描述
我们再让程序员B进行推送:

git push origin master

此时终端就报错了:
在这里插入图片描述
这是因为你所推送的内容和远程库中的内容起了冲突,因为你准备修改的地方已经有内容了,是程序员A修改的,这时候你需要将远程库先拉取下来,执行指令:

git pull origin master

在这里插入图片描述
看到红色框线标注的内容,是不是感觉似曾相识呢?没错,现在我们又处于合并中的状态了,打开程序员B的工作区:
在这里插入图片描述
解决冲突也很简单,把不需要的内容都删除就行了,这里我们就把程序员A和程序员B所做的修改都保留下来:
在这里插入图片描述
接下来的操作就一样了,将文件添加到暂存区:

git add test.txt

然后提交:

git commit -m "解决程序员B因推送产生的冲突"

这里还是注意千万别加文件名。

提交完成后,就可以推送到远程库了:

git push origin master

在这里插入图片描述

<br/>

跨团队协作开发

刚才介绍了如何进行团队协作开发,当你将某位开发人员邀请到你的项目团队中,该开发人员就可以对远程库进行拉取和推送的操作了。

但是这仅限于团队内部人员,什么意思呢?你的项目肯定是交由公司内部的人或者你信任的人来一起开发。比如你目前正在开发公司项目中的某个模块,途中遇到了一些技术上的问题,你找人帮忙,可他不是你们公司的,你当然不能把他邀请到你的项目团队里了,这就涉及到一个跨团队协作开发的问题,该如何解决呢?

这个在前面也说过了,我记得好像是专栏的第一篇文章, 当时说的是,团队外部人员可以将项目fork到自己的远程库,然后克隆到本地进行开发,完成后通过pull request发起请求,待项目负责人员审核后就可以进行合并了。

下面具体演示一下:
目前程序员A和程序员B在同时开发一个项目,此时程序员B遇到了一些问题需要程序员C帮忙,程序员C就需要去访问项目地址:
在这里插入图片描述
看到项目后,我们点击右上角的Fork,点了之后就会在程序员C的GitHub中复制一份远程库:
在这里插入图片描述
这样程序员C就可以开始正常开发了,新建一个文件夹(名为:TestGitHub_3),然后在该文件夹下启动Git终端,并将远程库克隆下来,执行指令:

git clone https://github.com/IronSpiderMan/TestGitHub.git

注意这里的地址是程序员C的远程库地址。

克隆下来以后,我们在程序员C的工作区创建一个pay.txt文件:
在这里插入图片描述
然后提交该操作:
在这里插入图片描述
提交完成后推送到远程库,执行指令:

git push origin master

此时刷新程序员C的远程库:
在这里插入图片描述
推送就完成了。

接下来程序员C就需要发起一个pull request请求,点击下图中红色框线标注部分:
在这里插入图片描述
你可以点击上面的Pull Requests,也可以点击下面的New pull requets来直接发起请求:
在这里插入图片描述
此时会显示你所做的修改,新添加了一个pay.txt文件,然后点击绿色按钮Create pull request:
在这里插入图片描述
输入一下这次请求的标题和内容,完成后点击右下角的绿色按钮:
在这里插入图片描述
到这里,程序员C的任务就完成了,接下来就要让程序员A去审核程序员C发起的请求:
在这里插入图片描述
可以看到程序员A的远程库中有一个Pull requests,我们点击进入:
在这里插入图片描述
这里就可以看到程序员C发起的请求,点击进去查看:
在这里插入图片描述
可以看到,这里是可以让两个开发者进行对话的,你可以询问他一些代码细节上的问题,对方收到消息后也可以回复你。
点击提交:
在这里插入图片描述
再来到程序员C的GitHub:
在这里插入图片描述
你就收到了程序员A发送来的消息,此时你就可以继续回复他。
在这里插入图片描述
Files changed可以查看程序员C具体改动了哪些文件,都确认无误后,点击下面的绿色按钮开始合并:
在这里插入图片描述
然后输入本次合并的注释信息:
在这里插入图片描述
点击绿色按钮确认合并,合并就完成了。
在这里插入图片描述
此时程序员A的远程库中就有了程序员C的代码,程序员A又可以对远程库进行拉取,本地开发,然后推送等操作。

<br/>

尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️

相关文章
|
6月前
|
项目管理 开发工具 git
Python面试题:Git版本控制与协作开发
【4月更文挑战第19天】本文聚焦于Python面试中Git版本控制与协作开发的考察点,涵盖Git基础、协作流程及实战示例。面试者需理解仓库、提交、分支等核心概念,掌握常用命令,熟悉主干开发和GitFlow策略。在协作开发中,要掌握Pull Request工作流,有效处理合并冲突,并善用标签与里程碑。注意避免混淆工作区、忽视代码审查和直接在远程分支上工作等常见错误。通过实例展示了如何在GitFlow策略下合并分支和解决冲突,强调持续学习与实践以提升Git技能。
66 1
|
12天前
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
34 1
|
14天前
|
算法 网络安全 开发工具
[Git]关联远程库的两种方法及配置
本文介绍了 git 的四种连接方式:ssh 连接、HTTPS 连接、SVN 连接和 SVN + ssh 连接,重点讲解了 HTTPS 和 ssh 连接方式的配置及注意事项。文章详细解释了 HTTPS 连接的身份验证过程、常见问题及解决方案,以及 ssh 连接的公钥和私钥的创建、配置方法。此外,还介绍了如何在同一台电脑上连接多个 gitee 账号的方法。
50 0
[Git]关联远程库的两种方法及配置
|
1月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
38 1
|
1月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
189 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
3月前
|
存储 安全 开发工具
掌握这5个Git高级命令,让你的开发效率飞速提升!
掌握这5个Git高级命令,让你的开发效率飞速提升!
|
3月前
|
存储 开发工具 数据库
什么是 Git 存储库?
【8月更文挑战第14天】
149 3
|
3月前
|
jenkins 持续交付 开发工具
自动化开发之旅:Docker携手Jenkins,与Git和Tomcat共舞持续集成
【8月更文挑战第13天】在软件开发中,持续集成(CI)通过自动化构建、测试与部署提升效率与稳定性。Docker、Jenkins、Git和Tomcat构成CI的黄金组合:`git push`触发Jenkins作业,利用Docker确保环境一致性,最终将应用部署至Tomcat。首先配置Git Webhooks以触发Jenkins;接着在Jenkins中创建作业并使用Docker插件模拟真实环境;通过Maven构建项目;最后部署至Tomcat。这套流程减少人为错误,提高开发效率,展示了技术的力量与流程的革新。
88 0
|
3月前
|
Linux 开发工具 git
|
4月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程