续集…
git学习笔记一讲述了如何推送到本地仓库,接下来讲讲如何使用远程仓库(Remote) ,以github为例
一.什么是远程仓库
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等
二.具体流程
1.添加SSH公钥
为什么要添加公钥?Git使用https协议,每次pull, push都要输入密码,比较麻烦。
使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。
1)进入C:\Users\86195.ssh目录(默认位置是在C:\Users\Administrator.ssh)
2)生成公钥
$ ssh-keygen -t rsa
3)将公钥信息public key添加到码云账户即可
添加成功
2.使用gitHub创建自己的仓库
1)
2)
3)
3.关联远程仓库
如果我们已经有了一个名为git-study本地仓库,和一个同名的远程仓库,应该怎么关联呢?
1)复制远程仓库的ssh
2)使用命令进行关联
查看远程库信息
删除已有的GitHub远程库
$ git remote rm origin
3)创建分支
为什么要创建分支?
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
- 创建并切换到该分支
git checkout -b dev 相当于 git branch dev(创建) 和git checkout dev(切换)
-查看已存在分支
- 当完成工作合并到主分支master,先切换到主分支master
$ git checkout master
$ git merge dev
- 合并后可以删除dev
$ git branch -d dev
补充:
最新版本的Git提供了新的git switch命令来切换分支:
#创建并切换到新的dev分支,可以使用:
$ git switch -c dev
#直接切换到已有的master分支,可以使用:
$ git switch master
4)将本地仓库的内容推送到github上
$ git push origin HEAD:分支名
5)在远程仓库拉取最新代码
git pull origin master #拉取到本地仓库的master分支上
三.多人合作
1.Fork
一般由项目组长建立代码的主仓库,剩余小组开发人员首先要对其仓库进行Fork,就是从主仓库将项目复制一份到自己的仓库,之后再进行clone到本地仓库。
1.)找到要fork的仓库,点击fork
2)Fork完,自己的远程仓库会出现
3)克隆到本地
$ git clone git@github.com:cylcylc/Codeginiter-with-Bootstrap-MaterialDesign.git #git clone ssh:你的地址
2.添加远程仓库
1)关联自己的gitHub仓库
$ git remote origin add git@github.com:cylcylc/Codeginiter-with-Bootstrap-MaterialDesign.git
2)将项目组长所建立的主仓库(你fork的仓库)添加进来
origin表示自己的仓库地址,upstream是主仓库的地址
主仓库已经被添加进来
3)创建分支
当我们看开始工作了,不要直接开敲,先pull一下主仓库保证代码最新,之后再新建一个分支,自己的代码提交到这个分支上
- 拉取主仓库代码
- 创建分支
$ git checkout -b dev
接下来就可以开始你愉快的敲代码之旅了
3.stash
当你开发完功能之后,或者这一天结束了,想要提交代码了,这个时候你要明白一件事,你们是合作开发,主仓库的更新速度是要比你的快的,也就是说很多情况主仓库的代码都是要比你的新,所以你要先pull 主仓库的代码。但是直接pull代码可能会直接带来冲突,所以在此之前你需要提交或者将代码放入暂存区stash,这里我推荐放到暂存区里面保管:
- 保存到暂存区
$ git stash save " save message"
- 拉取最新代码
$ git pull upstream master
- 从暂存区拿出
$ git stash pop
补充:
git stash list #查看stash了哪些存储
git stash show #显示做了哪些改动
git stash apply #将某个暂存取出,git stash apply stash@{$num}
git stash drop stash@{$num} #丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear #删除所有缓存的stash
4.提交和推送
- . 添加
$ git add . #这里的点是全部修改内容,或者自行选中单个文件
- 提交
$ git commit -m "描述提交信息"
- 推送
git push origin HEAD:分支名称
注:如果远程仓库没有改分支,会自动创建该分支
5.提交PR( Pull requests)
当自己的功能完成,可以向主仓库提交分支合并请求
当时pr的时候忘截图了,借用一下另一个同学的图,哈哈哈
四.补充
-
star 的作用是收藏,目的是方便以后查找。
-
watch 的作用是关注,目的是等作者更新的时候,你可以收到通知。
-
fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,把你的修改和主仓库原来的内容合并。