手表网站排行榜,长春网站设计哪家好,淘宝做短视频网站好,钓鱼网站怎样做Git 图文详解#xff08;五#xff09;#xff1a;远程仓库 1.远程用户登录1.1 #x1f511; 远程用户登录#xff1a;HTTS1.2 #x1f511; 远程用户登录#xff1a;SSH 2.远程仓库指令 #x1f525;3.推送 push / 拉取 pull4.fetch 与 pull 有什么不同 #xff1f; … Git 图文详解五远程仓库 1.远程用户登录1.1 远程用户登录HTTS1.2 远程用户登录SSH 2.远程仓库指令 3.推送 push / 拉取 pull4.fetch 与 pull 有什么不同 Git 作为分布式的版本管理系统每个终端都有自己的 Git 仓库。但团队协作还需一个中间仓库作为中心同步各个仓库。于是服务端远程仓库就来承担这个职责服务端不仅有仓库还配套相关管理功能。 可以用公共的 Git 服务器也可以自己搭建一套 Git 服务器。
公共 Git 服务器如 GitHub、GitLab、码云 Gitee、腾讯 Coding 等。搭建私有 Git 服务器如开源的 GitLab、Gitea 等。
1.远程用户登录
Git 服务器一般提供两种登录验证方式
HTTS基于 HTTPS 连接使用用户名、密码身份验证。 每次都要输入用户名、密码当然可以记住。地址形式https://github.com/kwonganding/KWebNote.git SSL采用 SSL 通信协议基于公私钥进行身份验证所以需要额外配置公私秘钥。 不用每次输入用户名、密码比较推荐的方法。地址形式gitgithub.com:kwonganding/KWebNote.git #查看当前远程仓库使用的哪种协议连接
$ git remote -v
origin gitgithub.com:kwonganding/KWebNote.git (fetch)
origin https://github.com/kwonganding/KWebNote.git (push)# 更改为https地址即可切换连接模式。还需要禁用掉SSL, 才能正常使用https管理git
git config --global http.sslVerify false1.1 远程用户登录HTTS
基于 HTTPS 的地址连接远程仓库GitHub 的共有仓库克隆、拉取pull是不需要验证的。 $ git clone https://github.com/kwonganding/KWebNote.git
Cloning into KWebNote...# 仓库配置文件“.git/config”
[remote origin]url https://github.com/kwonganding/KWebNote.gitfetch refs/heads/*:refs/remotes/origin/*pushurl https://github.com/kwonganding/KWebNote.git推送push代码的时候就会提示输入用户名、密码了否则无法提交。记住用户密码的方式有两种 URL 地址配置在原本 URL 地址上加上用户名、密码https:// 后加 用户名:密码
# 直接修改仓库的配置文件“.git/config”
[remote origin]url https://用户名:密码github.com/kwonganding/KWebNote.gitfetch refs/heads/*:refs/remotes/origin/*pushurl https://github.com/kwonganding/KWebNote.git本地缓存会创建一个缓存文件 .git-credentials存储输入的用户名、密码。
# 参数“--global”全局有效也可以针对仓库设置“--local”
# store 表示永久存储也可以设置临时存储
git config --global credential.helper store# 存储内容如下打开文件“仓库\.git\.git-credentials”
https://kwonganding:[加密内容付费可见]github.com1.2 远程用户登录SSH SSHSecure Shell安全外壳是一种网络安全协议通过加密和认证机制实现安全的访问和文件传输等业务多用来进行远程登录、数据传输。SSH 通过公钥、私钥非对称加密数据所以 SSH 需要生成一个公私钥对公钥放服务器上私有自己留着进行认证。 ① 生成公私钥通过 Git 指令 ssh-keygen -t rsa 生成公私钥一路回车即可完成。生成在 C:\Users\用户名.ssh 目录下文件 id_rsa.pub 的内容就是公钥。 ② 配置公钥打开 id_rsa.pub 文件复制内容。GitHub 上打开 Setting ➤ SSH and GPG keys ➤ SSH keys ➤ 按钮 New SSH key标题Title随意秘钥内容粘贴进去即可。 SSH 配置完后可用 ssh -T gitgithub.com 来检测是否连接成功。
$ ssh -T gitgithub.com
Hi kwonganding! Youve successfully authenticated, but GitHub does not provide shell access.2.远程仓库指令 指令 描述 git clone [git地址]从远程仓库克隆到本地当前目录git remote -v查看所有远程仓库不带参数 -v 只显示名称git remote show [remote]显示某个远程仓库的信息git remote add [name] [url]增加一个新的远程仓库并命名git remote rename [old] [new]修改远程仓库名称git pull [remote] [branch]取回远程仓库的变化并与本地版本合并git pull同上针对当前分支git fetch [remote]获取远程仓库的所有变动到本地仓库不会自动合并需要手动合并git push推送当前分支到远程仓库git push [remote] [branch]推送本地当前分支到远程仓库的指定分支git push [remote] --force / -f强行推送当前分支到远程仓库即使有冲突。⚠️很危险git push [remote] --all推送所有分支到远程仓库git push –u参数 –u 表示与远程分支建立关联第一次执行的时候用后面就不需要了git remote rm [remote-name]删除远程仓库git pull --rebase使用 rebase 的模式进行合并
3.推送 push / 拉取 pull
git push、git pull 是团队协作中最常用的指令用于同步本地、服务端的更新与他人协作。 推送push推送本地仓库到远程仓库。
如果推送的更新与服务端存在冲突则会被拒绝push 失败。一般是有其他人推送了代码导致文件冲突可以先 pull 代码在本地进行合并然后再 push。 拉取pull从服务端远程仓库更新到本地仓库。
git pull拉取服务端的最新提交到本地并与本地合并合并过程同分支的合并。git fetch拉取服务端的最新提交到本地不会自动合并也不会更新工作区。 4.fetch 与 pull 有什么不同
两者都是从服务端获取更新主要区别是 fetch 不会自动合并不会影响当前工作区内容。 git pull git fetch git merge 如下面图中git fetch 只获取了更新并未影响 master、HEAD 的位置。要更新 master、HEAD 的位置需要手动执行 git merge 合并。 # fetch只更新版本库
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 663 bytes | 44.00 KiB/s, done.
From github.com:kwonganding/KWebNote2ba12ca..c64f5b5 main - origin/main# 执行合并合并自己
$ git merge
Updating 2ba12ca..c64f5b5
Fast-forwardREADME.md | 2 -1 file changed, 1 insertion(), 1 deletion(-)