3.远程仓库
本文最后更新于:2021年9月8日 晚上
远程仓库
配置SSH
-
本地Git仓库和GitHub仓库之间的传输是通过SSH加密的、
-
第1步:创建SSH Key。打开Shell(Windows下打开Git Bash),创建SSH Key:
1
2
3
4
5cd ~/.ssh //检查本机是否有ssh,如果提示没有则需要创建
ssh-keygen -t rsa -C "youremail@example.com" //创建ssh,一路回车,使用默认值即可
cd ~/.ssh //进入文件
ll //查看是否存在有id_rsa(私匙)和id_rsa.pub(公匙)两个文件
cat id_rsa.pub //查看公匙 -
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面
- 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub
文件的内容
- 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴
-
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
本地仓库关联远程仓库
命令
-
git remote add origin <仓库地址>
:连接远程仓库(并未拉取文件)- 仓库地址选择git开头的那个
- 添加后,远程库的名字就是
origin
,这是Git默认的叫法,也可以改成别的
-
git fetch <远程主机名> <分支名>
:从远程库抓取指定分支的所有commit到本地远程库- 去掉
<分支名>
将会抓取远程所有分支的修改 - 该命令首先会把抓取的数据保存在一个
FETCH_HEAD
的临时记录中,通过git log -p FETCH_HEAD
可以查看刚获取的更新信息。如果确认无误,可以通过git merge FETCH_HEAD
合并到当前分支 <分支名>:<本地分支名>
会自动合并,但是要保证该命令不是在要合并的分支下进行
- 去掉
-
git pull <远程主机名> <远程分支名>:<本地分支名>
:将远程主机的某个分支的更新取回,并与本地指定的分支合并- 如果合并的分支时当前分支,冒号后可省略
- 当前分支要用于跟踪该远端仓库分支才可拉取
-
git push -u origin <本地分支名>
:将当前本地仓库分支推送到远程仓库上相同名字的分支-u
:第一次推送master
分支时,加上-u
参数,Git不但会把本地的main
分支内容推送的远程新的main
分支,还会把本地的main
分支和远程的main
分支关联起来,在以后的推送或者拉取时就可以简化命令,直接使用git push
- 实际上实现了一个跟踪分支的效果,本地分支会自动跟踪对应远程分支
- 可在创建分支时用
--track <本地分支名> <远程分支名>
来跟踪
<本地分支名>:<远程分支名>
:推送到远程仓库的分支重新命名- 如果没有会为远程库创建对应分支
- 如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送
远程库操作
命令
git clone <仓库地址>
:克隆远程参考所有文件git remote rm <远程仓库名>
:解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动git remote -v
:显示所有远程库对应的克隆地址git remote show <远程仓库名字>
:查看远程仓库的详细信息git remote rename <远程仓库名> <远程仓库新名>
:修改某个远程参考在本地的简称- 对远程仓库的重命名,也会使对应的分支名称发生变化,原来的
pb/master
分支现在成了paul/master
- 对远程仓库的重命名,也会使对应的分支名称发生变化,原来的
扩展阅读
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!