四、远程仓库 Github
GitHub 网址 : https://github.com
PS:被戏称为全球最大同性交友网站,宅男的技术天堂
4.1 创建远程库
下图的红色框都是创建一个新的仓库
- public:所有人都能查看(克隆下载),你指定的人才能提交
- private:你指定的人才能能查看和提交,协作开发不能超过五个人,超过五个人要收费(更多人协同开发的私有库解决方案GitLab?)
创建成功后可以使用HTTPS或者SSH协议连接远程库
GitHub官方给我们提供里两种快速开始使用的示例,涉及到的命令先给出注释,后面再讲解具体用法
- 新建一个本地库向远程库推送
# 新建一个目录,打开Git Bash
echo "# git_demo" >> README.md #在当前目录下创建一个README.md文件,写入内容"# git_demo"
git init # 初始化本地库
git add README.md # 将README.md添加到暂存区
git commit -m "first commit" # 将暂存区内容提交到本地库
git branch -M master # 创建一个master分支
git remote add origin https://github.com/taotaowang233/git_demo.git # 给远程库的地址起一个别名origin
git push -u origin master # 将master分支推送到远程库
- 使用现有的本地库向远程库推送
# 进入到现有的本地库的目录,打开Git Bash
git remote add origin https://github.com/taotaowang233/git_demo.git
git branch -M master
git push -u origin master
- 远程仓库的HTTPS链接太长,在本地init的项目可以用remote命令配置远程仓库别名
git remote -v # 查看当前所有远程地址和对应的别名 -v是--verbose的缩写,用于详细显示
git remote add 别名 远程地址 # 给远程库指定一个别名
git remote rm 别名 #删除远程库
4.2 推送、拉取远程库
git push 仓库地址或别名 分支名 #推送到远程仓库,如果在。git/config文件中已经有了远程仓库的配置,可以不带参数直接push
下面演示本地库推送到远程库,使用HTTPS协议进行push时会弹出一个登录GitHub账号的弹窗
如果你想换用其他的GitHub账号,但是你会发现以后再push的时候就不会再让你登录账号了???Git本身是没有记住账号的功能,众所周知HTTP协议是无状态的,他也不能记住账号,其实是windows系统有一个凭据管理器做的这些操作,你想换账号要先把这个数据删除
想要拉取远程库的内容到本地库,可以用pull,fetch和merge等命令
git pull 远程库 分支 #pull = fetch + merge操作 拉取加合并
git fetch 远程库 分支 #此时只做了一个拉取,你在当前分支是看不到的,因为还没合并
git checkout origin/XXX #xxx是fetch的分支名,上面拉取的内容自动放到了一个临时分支下,你可以用checkout查看
git merge origin/XXX #进入到接受合并的分支,把origin/XXX合并到这个分支
但是一开始是只有仓库的创建者才能push的,如果团队中有其他人一起开发,创建者需要邀请其他成员,输入被邀请人的账号,被邀请人在自己的github点接受就有了push到远程仓库的权限,大家就可以愉快的搞基了
4.3 克隆远程库
# 进入一个目录下,启动Git Bash
git clone https://github.com/demo-endless/testOne.git //从线上仓库克隆项目
clone命令做了三件事,(1)拉取代码(2)初始化本地仓库(3)创建远程库的别名,默认为origin
4.4 SSH免密登录
GitHub远程仓库除了HTTPS链接还提供了SSH协议的链接
- 在本地生成SSH密钥,在windows的用户目录下打开cmd执行
ssh-keygen -t rsa -C "youremail@example.com"
命令,执行成功后在该目录上生成一个.ssh目录,里面有生成的公钥id_rsa.pub和私钥id_rsa - 在github的设置中添加SSH Key,点New SSH Key后将公钥的内容复制到这里
- 测试连接使用
ssh -T git@github.com
命令测试连接,成功如下图
4.5 Gitee的使用
暂存 Git Gitee | 菜鸟教程 (runoob.com)
4.6 GitLab/自己搭建Git服务器
挖