导读:上一篇文章介绍了 git 的安装及本地的几个基本操作,这篇文章介绍如何使用 git 这个工具,完成本地与远程仓库的交互。
这篇文章将告诉你,如何使用 git
- 下载仓库文件
- 把本地的文件上传到远程仓库
- 仓库文件有更新时保持本地与远程一致
让我们开始吧!
补充:现在的主分支是 main,不是 master,下面的语句中要把 master 换成 main。
1. SSH 配置
要想本地与远程仓库交互,必须有一个安全机制防止数据泄漏👀,这个安全机制就是 SSH,因此远程交互之前需要进行 SSH 配置。
1.1 生成 SSH key
想要生成 SSH KEY 需要先安装 SSH,不过我们之前已经安装的 GitBash 自带 SSH😊(我的操作系统是 Windows 10)
打开 GitBash ,输入 ssh,如果返回如下界面说明 SSH 已安装,否则得自己安装呀!
![图片[1]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-28.png)
紧接着输入 ssh-keygen -t rsa (指定 rsa 算法生成密钥),接着连续三个回
车键(不需要输入密码),然后就会生成两个文件 id_rsa (密钥)和 id_rsa.pub (公钥)。
我划线的地方就是密钥和公钥存储的位置,等会儿我们需要打开文件复制密钥🔑。
![图片[2]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-29.png)
1.2 添加 SSH key
接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。
打开 GitHub,点击右上角的你的头像,点击设置 settings:
![图片[3]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-30-1024x549.png)
点击左侧的 SSH and GPG keys,点击右上角的 New SSH key:
![图片[4]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-31-1024x549.png)
进入到下面的界面,把刚刚生成的公钥 (id_rsa.pub 文件中的内容)复制到 Key 所在框, Title 不用填,复制好点击下方的 Add SSH key 按钮即可。
提示:id_rsa.pub 可以选择用 Notepad++ 或 Sublime 打开~
![图片[5]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-32-1024x549.png)
添加完返回 SSH 页面就会出现你的本地信息,如下图所示:
![图片[6]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-33-1024x549.png)
1.3 验证绑定
最后我们验证一下本地的 git 与 GitHub 是否绑定成功,在 GitBash 输入 ssh -T git@github.com ,如果返回下面的提示,说明绑定成功✌,不过有时候返回有些慢呀
![图片[7]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-34.png)
到此为止,我们的 SSH 配置完成,接下来我们可以与远程仓库交互啦!
2. 通过 Git 下载代码
看过第一篇教程的同学一定知道,某个项目的界面的 Clone or download 按钮可以下载整个仓库/项目的文件。
最简单的就是点击 Download ZIP,这是常规的下载操作,下载一个压缩包到指定目录。
另一种方法就是使用 git clone,这种方法又分为 cloning with HTTPS 和 clone with SSH,下面我们分别演示一下。
❓到这里你会有疑问,我能直接点击下载,为啥要学 git clone😮。
还记得第一篇教程就说过,git 是个版本管理工具,你用它就是为了记录提交历史,写错了能够回滚到历史文件等。
如果你下载的是你自己的文件,你直接 download,就完成不了上面的功能,你改了文件也没法在原来的基础上提交😟。
当然如果你只是为了下载别人的仓库看看,不需要版本控制这些功能,直接download 就行;但如果需要用到版本管理,就得学习 git clone 😎
![图片[8]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-35-1024x549.png)
2.1 git clone with HTTPS
这种方法是官方推荐的,它不用 SSH 就可以完成。
我以一个仓库为例,注意上面写的是 Clone with HTTPS,复制下面的 URL:
![图片[9]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-6-1024x549.png)
打开文件要 clone 的目录,右击选择 Git BashHere:
![图片[10]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-36-1024x636.png)
打开 GitBash 窗口,输入 git clone,后面跟刚刚复制的 URL,回车,等它下载完,你会看到你的文件夹里直接就是仓库里的文件。
语句长这样:
git clone https://github.com/project/repo.git
![图片[11]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-37.png)
2.2 git clone with SSH
在 Clone with HTTPS那里,点击 Use SSH ,就会切换成第二种 git clone 方式。
第二种方式需要用到 SSH,没有配置是不能用的,所以我们放到这一节介绍。
其实步骤与上面的步骤一样,只不过复制的 URL 是 SSH 机制下的:
![图片[12]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-10-1024x549.png)
接着也是在目录下打开 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 # 把远程最新的代码更新到本地
一般我们在 push 之前都会先 pull ,这样不容易冲突。
3.2 提交代码
通过 git 提交代码的前提是已有仓库,然后把仓库 clone 到本地,你修改后再pull。
相信通过前面的教程,你已经学会如何新建和删除一个仓库,我这里用一个临时建的仓库演示一下提交功能。
![图片[13]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-9-1024x549.png)
然后我们把仓库 clone 到本地,为了不输入账号密码,我这里用 SSH 的方法 clone。
![图片[14]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-7-1024x636.png)
接下来我就要在更新本地仓库, 我只是新加一个 python 文件,你也可以修改一个已有文件。
![图片[15]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-8-1024x636.png)
看过上一篇 git 教程,我们就知道所有的改动都需要通过 git add和git commit 提交到本地的仓库。
在这个文件夹/本地仓库,右击打开 Git Bash,输入 git status 查看状态,再用 git add和git commit 提交新加的文件。
注意 first commit 是我为这次 commit 起的名字,你可以写成其他名字。
![图片[16]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-39.png)
然后输入 git log 查看提交历史,可以看到一共有两次 commit,第一次是在 GitHub 上新建仓库,第二次是刚刚在本地新提交文件。
![图片[17]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/image-38.png)
到现在我们才完成本地更新的工作,接下来要把本地仓库 push 到远程仓库
在 Git Bash 输入 git push origin master 即可😊
默认向 GitHub 上的 test 目录提交了代码,而这个代码是在 master 分支。
![图片[18]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-5.png)
然后我们刷新远程仓库,可以看到有更新:
![图片[19]-GitHub 小白入门(四)本地与远程仓库的交互-飞鸟和鱼的部落格](https://www.itpck.com/wp-content/uploads/2024/11/1-4-1024x549.png)
总结:这篇文章介绍了 SSH 的配置,通过 SSH 完成 git clone 和 git pull 等操作,完成本地仓库与远程仓库的交互,并记录每次的提交历史。









暂无评论内容