GitHub本地与远程仓库交互

1. SSH 配置

(本文转自,GitHub 小白入门(四)GitHub下载提交代码

要想本地与远程仓库交互,必须有一个安全机制防止数据泄漏 ,这个安全机制就是 SSH,因此远程交互之前需要进行 SSH 配置。

1.1 生成 SSH key

想要生成 SSH KEY 需要先安装 SSH,不过我们之前已经安装的 GitBash 自带 SSH (我的操作系统是 Windows 10)

打开 GitBash ,输入 ssh,如果返回如下界面说明 SSH 已安装,否则得自己安装呀!

img

紧接着输入 ssh-keygen -t rsa (指定 rsa 算法生成密钥),接着连续三个回
车键(不需要输入密码),然后就会生成两个文件 id_rsa (密钥)和 id_rsa.pub (公钥)。

我划线的地方就是密钥和公钥存储的位置,等会儿我们需要打开文件复制密钥 。

img

1.2 添加 SSH key

接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

打开 GitHub,点击右上角的你的头像,点击设置 settings

img

点击左侧的 SSH and GPG keys,点击右上角的 New SSH key

img

进入到下面的界面,把刚刚生成的公钥 (id_rsa.pub 文件中的内容)复制到 Key 所在框, Title 不用填,复制好点击下方的 Add SSH key 按钮即可。

提示:id_rsa.pub 可以选择用 Notepad++ 或 Sublime 打开~

img

添加完返回 SSH 页面就会出现你的本地信息,如下图所示:

img

1.3 验证绑定

最后我们验证一下本地的 git 与 GitHub 是否绑定成功,在 GitBash 输入 ssh -T git@github.com ,如果返回下面的提示,说明绑定成功✌,不过有时候返回有些慢呀

img

到此为止,我们的 SSH 配置完成,接下来我们可以与远程仓库交互啦!

2. 通过 Git 下载代码

看过第一篇教程的同学一定知道,某个项目的界面的 Clone or download 按钮可以下载整个仓库/项目的文件。

最简单的就是点击 Download ZIP,这是常规的下载操作,下载一个压缩包到指定目录。

另一种方法就是使用 git clone,这种方法又分为 cloning with HTTPS 和 clone with SSH,下面我们分别演示一下。

❓到这里你会有疑问,我能直接点击下载,为啥要学 git clone 。
还记得第一篇教程就说过,git 是个版本管理工具,你用它就是为了记录提交历史,写错了能够回滚到历史文件等。
如果你下载的是你自己的文件,你直接 download,就完成不了上面的功能,你改了文件也没法在原来的基础上提交 。
当然如果你只是为了下载别人的仓库看看,不需要版本控制这些功能,直接download 就行;但如果需要用到版本管理,就得学习 git clone

img

2.1 git clone with HTTPS

这种方法是官方推荐的,它不用 SSH 就可以完成。

我以一个仓库为例,注意上面写的是 Clone with HTTPS,复制下面的 URL:

img

打开文件要 clone 的目录,右击选择 Git BashHere:

img

打开 GitBash 窗口,输入 git clone,后面跟刚刚复制的 URL,回车,等它下载完,你会看到你的文件夹里直接就是仓库里的文件。

语句长这样:

git clone https://github.com/project/repo.git

img

2.2 git clone with SSH

Clone with HTTPS那里,点击 Use SSH ,就会切换成第二种 git clone 方式。

第二种方式需要用到 SSH,没有配置是不能用的,所以我们放到这一节介绍。

其实步骤与上面的步骤一样,只不过复制的 URL 是 SSH 机制下的:

img

接着也是在目录下打开 Git Bash,输入 git clone, 后面是刚刚复制的 URL。

语句长这样,可以看出 SSH 下的 URL 和 HTTPs 下的 URL 不一样。

git clone git@github.com:project/repo.git

2.3 异同

再说这两种方法的异同。

同:HTTPs 与 SSH 下的 git 都可以直接进行 git clone 操作

异:

  • HTTPs git clone 到本地,进行了一些文件的修改,当再次提交到 GitHub远程服务器的时候,都会进行账号与密码的输入
  • SSH git clone 到本地之后,由于已有 SSH Keys 授权,就不需要用户名和密码进行授权了。

3. 通过 Git 提交代码

3.1 两个命令

上一节我们讲了一些基本的 git 命令,不过都只涉及本地,现在我们想本地与远程仓库交互,就需要学习两个新命令:

  • git push:翻译为推,当你的代码更新,需要把本地的推到远程仓库
  • git pull:翻译为拉,当远程仓库有更新,你需要把远程的拉到本地进行合并

可以看出这两个命令都是为了保证本地与远程的同步。

我们需要区分 git clone 和 git pull,虽然它们都是从远程仓库到本地的更新,但前者在本地无仓库时使用,后者是本地已有仓库时使用。

使用举例:

git push origin master # 把本地代码推到远程 master 分支
git pull origin master # 把远程最新的代码更新到本地

注意现在主分支叫 main 了!

git push origin main # 把本地代码推到远程 main 分支
git pull origin mian # 把远程最新的代码更新到本地

一般我们在 push 之前都会先 pull ,这样不容易冲突。

3.2 提交代码

通过 git 提交代码的前提是已有仓库,然后把仓库 clone 到本地,你修改后再pull。

相信通过前面的教程,你已经学会如何新建和删除一个仓库,我这里用一个临时建的仓库演示一下提交功能。

img

然后我们把仓库 clone 到本地,为了不输入账号密码,我这里用 SSH 的方法 clone。

img

接下来我就要在更新本地仓库, 我只是新加一个 python 文件,你也可以修改一个已有文件。

img

看过上一篇 git 教程,我们就知道所有的改动都需要通过 git addgit commit 提交到本地的仓库。

在这个文件夹/本地仓库,右击打开 Git Bash,输入 git status 查看状态,再用 git addgit commit 提交新加的文件。

如果要 add 目录下的所有文件,用

git add --all

注意 first commit 是我为这次 commit 起的名字,你可以写成其他名字。

img

然后输入 git log 查看提交历史,可以看到一共有两次 commit,第一次是在 GitHub 上新建仓库,第二次是刚刚在本地新提交文件。

img

到现在我们才完成本地更新的工作,接下来要把本地仓库 push 到远程仓库

Git Bash 输入 git push origin master 即可

默认向 GitHub 上的 test 目录提交了代码,而这个代码是在 master 分支。(现在是 main 分支!

img

然后我们刷新远程仓库,可以看到有更新:

img

总结:这篇文章介绍了 SSH 的配置,通过 SSH 完成 git clone 和 git pull 等操作,完成本地仓库与远程仓库的交互,并记录每次的提交历史。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值