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 会发送一个公钥给你,知道你确实是你本人
就像武侠小说里主角和女主曾经的家族有联系,通过掰碎玉佩指腹为婚,多年之后相遇发现玉佩可以相互重合,验证身份
\
上传代码
-
现在可以上传代码了
- 新建 GitHub Repo(仓库) ,复制了其ssh地址
- 复制页面里面的代码(关掉翻译)
-
git remote add origin git@github.com:XXXXXX
-
git push -u origin main
-
git branch -M main
- 在本地添加远程仓库地址
- origin是远程仓库的默认名字,可以换,建议不要换
- 不要使用https://地址,因为每次都需要密码
-
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整个仓库