3.远程仓库

本文最后更新于:2021年9月8日 晚上

远程仓库

配置SSH

  • 本地Git仓库和GitHub仓库之间的传输是通过SSH加密的、

  • 第1步:创建SSH Key。打开Shell(Windows下打开Git Bash),创建SSH Key:

    1
    2
    3
    4
    5
    cd  ~/.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文件的内容
  • GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

本地仓库关联远程仓库

img

命令

  • 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 协议 ,转载请注明出处!