Git Hub 远程仓库

102 阅读3分钟

Git Hub 远程仓库

代码需要存储在云端

比如你需要在公司和家里写代码

比如你的笔记本被女朋友的奶茶泡坏了

比如运行了rm - rf /

但是我们要解决一个问题,Git hub怎么知道是你在操作你的代码

推理

  • 你在GitHub上有一个账号
  • 你的git仓库在你的电脑上
  • GitHub怎么知道这个电脑和这个账号都属于你呢?

答案

  • 每次都输入一次密码(HTTPS协议),太不方便
  • 使用ssh key
  • 电脑上放私匙,GitHub账号里留下公匙
  • 上传代码是用私匙加密,GitHub用公匙解密
  • 如果解开了,说明是配对的
  • 同理,你怎么知道对方是GitHub呢?也需要GitHub提供一个公匙给你,所以第一次链接GitHub的时候要选择yes来接受对方的公匙

SSH key 验证身份

第一次的操作你需要找到自己的公钥,然后去GitHub里添加你的公钥,最后运行:

 ssh -T git@github.com

GitHub 会发送一个公钥给你,知道你确实是你本人

就像武侠小说里主角和女主曾经的家族有联系,通过掰碎玉佩指腹为婚,多年之后相遇发现玉佩可以相互重合,验证身份

\

image-20220719202007970.png

上传代码

  • 现在可以上传代码了

    • 新建 GitHub Repo(仓库) ,复制了其ssh地址
    • 复制页面里面的代码(关掉翻译)

image-20220719213933264.png

  • git push -u origin main

    • 如果推送master分支到远程origin的master分支
    • 如果提示你应该git pull...,你就git pull 一些
    • git pull 是把远程分支合并到本地对应的分支
    • 如果远程分支没有更新过,才可以省略git pull
    • -u origin master的意思是设置上游分支
    • 之后就不需要再设置上游分支了,直接git pull;git push;

下载别人的代码

  • 如何下载代码

    • git clone git @xxxxxx[目标路径]
    • 如果是不同机器,要写上传新的ssh key (一机一key)
    • cd 目标路径
    • git add/git commit/[git pull]/ git push 四连操作
  • 如何下载某个分支

    • 先下载整个仓库,然后git checkout 分支名
    • 或者自己去搜一些命令

git clone

有三种形式

  • git clone git@?/xxx .git

    • 会在当前目录下创建一个xxx目录
    • xxx/ .git是本地仓库
    • 一般要接一句cd xxx
  • git clone git@?/xxx .git yyy

    • 会在本地创建yyy目录,记得cd yyy
  • git clone git@?/xxx .git .

    • 最后一个字符是店,注意有空格
    • 不会创建目录,使用当前目录容纳代码和 .git
    • 当前目录最好一开始就是一个空目录

可以上传到两个远程仓库么?

  • 只需要两句话

    • git remote add repo2 git@XXXXXX
    • git push -u repo2 main
    • git branch -M main
  • 如果提示 git pull

    • 说明你新建项目的时候创建了一些文件
    • 你只需要运行git pull之后再运行刚才的命令
  • 国内GitHub的代替品

    • coding.net(腾讯战略投资)
    • gitlab.com
    • gitee.com (开源中国)

git rebase -1 XXXX 美化历史命令

  • r 采用,但是改写message
  • s采用,但是合并到上一个提交
git stash /git stash pop

你不想提交代码,又不想删除代码,那么就可以找个空间把代码临时藏起来

总结

  • 常用命令

    • 大部分时候,只需要 git clone / git pull / git push 三个命令
    • 遇到报错,要仔细看报错,可以翻译一下
  • 远程仓库

    • 只是本地仓库的备份,使用变化都要先commit仓库,然后push到远程
    • 无法下载部分代码,只能clone整个仓库