0


远程连接github仓库,push与pull获取或上传更新

写在前面,本文的重点有两个,一是怎么本地连接上远程仓库,二是连接后怎么获取仓库更新、上传仓库更新。

重点内容会手把手详细教,其他的内容只会略谈。

一、远程连接github仓库

如果想要远程连接github仓库,需要按下面六个步骤进行。

如果你已经完成了其中一些步骤,比如git的安装、仓库的创建,那么可以跳过对应章节。

但如果前面步骤没有完成,请根据指导一步步进行,因为完成了前面的步骤才能开展后续的连接。

1.git安装

1)Linux系统

如果你用的是Linux系统,直接输入下面命令即可安装git:

sudo apt update
sudo apt install git

之后的指导中我会提到在Git Bash输入各种命令,你只需要在Linux的终端输入即可。

2)Windows系统

官网安装网址如下,git的安装在各个网站有很详细的指导,此处不再赘述。Githttps://git-scm.com/

下载了git之后,我们可以借助它在本地与github进行交互。

git是一个分布式版本控制系统,用于跟踪文件的更改,尤其是源代码的更改。它允许多个开发者在同一项目上协作,管理代码的不同版本。

GitHub是一个基于 Web 的 Git 仓库托管服务,提供了 Git 版本控制系统的云端实现。

简言之,git是一个灵活高效的工具,开发者可以使用 Git 在本地进行版本控制和管理。

2.配置git用户及邮箱

在安装好的git bash中输入下面两个命令,其中“用户名”替换成你的github账户名,“邮箱”替换成你的邮箱。比如git config --global user.name ‘风染yeye’。(当然前提是你已经在github拥有账户)

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

上面两条命令用于配置 Git 的全局用户信息,即设置 Git 提交时显示的用户名和电子邮件地址。

毕竟,如果想要上传更新代码,至少得有个身份信息。

配好后,输入下面的命令可以检查是否配置成功:

git config --global -l

(扩展)Git Bash与Git CMD有什么区别?

Git Bash 是一个模拟 Unix shell 的环境,基于 Git for Windows 的 MinGW 环境。这意味着它支持许多类 Unix 的命令和功能,如 lscpmv 等。

Git CMD 是一个 Windows 命令提示符的扩展,主要提供 Git 命令。它不支持类 Unix 的命令和功能,只支持 Windows 的命令提示符功能。

对于大多数开发者来说,Git Bash 是更为推荐的选择,尤其是如果你需要更强大的命令行环境和更丰富的命令集。

3.配置ssh与添加公钥

为什么要配置SSH?

SSH 提供了一个加密的通道,可以确保在你和 GitHub 之间传输的数据是安全的。在远程连接 GitHub 仓库时,使用 SSH(Secure Shell)协议进行身份验证和数据传输是一个安全且常用的方法。

下面需要进行两步:本地生成ssh密钥对、在github上添加公钥

1)本地生成SSH密钥对

在本地Git Bash下输入下面命令:

(此处的“邮箱”需要替换成你的邮箱,比如 ssh-keygen -t rsa -C "123@qq.com")

ssh-keygen -t rsa -C "邮箱"

你可能得到下面的结果:

这里我们生成了密钥对,分别是公钥(.pub 文件)和私钥(不带扩展名的文件)。

红框圈起来的是我们生成的公钥的保存位置(.../.ssh/id_rsa.pub),现在我们需要打开这个文件,把里面存储的公钥内容复制出来。

你可以直接在电脑中找到这个文件并打开,并复制文件中的所有内容。

如果你是Linux系统,也可以在终端进入到.ssh路径下,然后输入“cat id_rsa.pub”来获取文件内容。

如图,请你复制id_rsa.pub文件中的所有内容,下一步需要用到。

2)把生成的公钥添加到github

这里需要你打开github.com,点击你的头像图标,进入“settings”.

接着你会看到下述页面,点击左方的“SSH and GPG keys”,然后点击右方的“New SSH key”.

接着你会看到下面界面:

把你刚刚从id_rsa.pub中复制的内容,全部粘贴在“key”下方的方框内;

上面的Title,你可以取任何名字来对这个SSH key命名。

书写完毕后,点击绿色按钮“Add SSH key”即添加完成。

你也可以输入下面的命令来验证你是否配置成功:

ssh -T [email protected]

如果出现类似下图的提示,说明配置成功:

4.创建github仓库(已经有仓库可略过这节)

在github网页右上角点击“+”,再点击New repository。

点击后会出现下面的界面,在“repository name”下框中填写你想取的仓库名字。

需要注意的是,下方对Public还是Private选项的勾选,如果你选择Public,那么你的仓库内容可以被任何人看到(但是谁可以修改仍由你决定);如果你选择Private,那么只有你指定的人可以看见和修改。

最后点击右下角的绿标“Create Repository”,即可创建仓库。

5.把远程仓库内容克隆到本地

在github网页点开你想要远程连接的仓库,再点击右上角的“Code”:可以看到下方框中有http://xxx.git,点击右边的复制按钮,把这个链接复制下来,一会儿要用。

这时候你可以先创建一个空文件夹,等会把仓库中的文件就拷贝到这个空文件夹中。

打开Git Bash,进入到你创建的空文件夹的路径下(cd 你的文件路径);或者打开你的文件夹,然后点击右键打开Git Bash(会自动进入当前文件夹的路径下)然后执行下述命令:

git clone https://xxx.git

其中,https://xxx.git请替换成你刚刚复制得到的仓库链接。

在使用 git clone 命令时,Git 已自动设置好与你的远程仓库的连接,所以不需要再执行 git remote add

6.完成远程连接,检查是否连接成功

把远程仓库克隆到本地后,在远程仓库的文件夹路径下面,你就已经完成了与远程仓库的连接。(注意时远程仓库的文件夹路径下,比如你之前创建的空文件夹是../emp_direc,仓库文件夹名字是rep_direc,那么你需要在./emo_direc/rep_direc下执行后续操作)

你可以输入下面命令来验证,是否完成了远程连接:

git status

如果你能成功运行这个命令,得到仓库的更新状态,那么恭喜你,连接成功。

二、从远程仓库中获取/上传更新

1.从仓库中获取更新(git pull)

执行上一步的git clone之后,你已经把仓库中的内容完全拷贝到本地。但是,远程仓库的内容可能会更新,比如他人上传了新的文件或修改了已有的文件。这时候,为了把远程仓库的更新同步到本地,确保一致性,你可以执行下面的命令:

git pull origin main

注意,这里你需要把“main”替换成你想要更新的分支名称。分支名称你可以在github网页,点击仓库后的左上方找到:

或者你也可以输入下面命令来查看,本地有哪些分支:

git branch

在 Git 中执行 git pull origin master 命令时,实际上进行了两个步骤,一是“fetch”(获取),二是“merge”(合并)。fetch 操作就是看一下远程仓库作了哪些更新但不会把更新作用到本地,而“merge”操作会将一个分支的更改合并到当前分支。如果你执行“git pull”或者“git merge”时遇到问题,多半是因为你在本地的更改与远程仓库的更改出现了冲突(比如你们把同一段代码修改成了不同样子),那么这需要你手动解决冲突(Bash界面会告诉你冲突的文件,需要你自己手动更改)

2.从仓库中上传更新(git add,git commit, git push)

建议你在上传更新前先执行上一步的“git pull origin <分支名称>”,先把远程更改同步在本地。

同步之后,你主要需要进行三步:

先是将更改添加到暂存区,为下次提交做准备。执行下面其中一个git add命令:

git add file_name  #将当前目录下名字为“file_name”的文件更改暂存
git add  #将当前目录下所有更改暂存

再是把更改提交到本地仓库,双引号中你可以描述你的提交(填什么都可以):

git commit -m "update file_name for 1st time"

最后将本地仓库的更改推送到远程仓库,“main”需要替换成你作用到的分支名称。

git push origin main

完成这三步之后,你应该已经成功把更新同步到了远程仓库,你可以在github网页的仓库中检查你的更改。

ps:如果你的本地修改是在原有文件基础上创建一个新文件夹,新文件夹中需要有文件,才能把新文件夹成功上传哟~

标签: github linux git

本文转载自: https://blog.csdn.net/weixin_74447766/article/details/142668684
版权归原作者 风染yeye 所有, 如有侵权,请联系我们删除。

“远程连接github仓库,push与pull获取或上传更新”的评论:

还没有评论