github--仓库
git和github
- 首先git和github之间是没有实质关系的
- git是分布式版本控制软件
- github是仓库(保存代码数据以及版本的)
- 共通点就是使用git可以将本地和云端的数据以及版本进行联结,便于管理本地和远程的代码
使用github仓库
- 注册账号
- 创建仓库(存放数据代码)
- 将远程和本地关联(上传和下载)
github--使用
创建新仓库
将本地的仓库推送到远端
git remote add origin 远程仓库地址
git push -u origin master
将远程仓库代码克隆到本地
git clone 远程仓库地址
(内部已经实现了git remote add origin 远程仓库地址)
编辑代码
- 在本地的dev分支开始工作前一定要保证和master分支的代码一致
- git push -u origin master
- 就是指定提交master的代码到远程的origin地址
- 还可以简写为git push
- 但是不建议这么写,推荐写法 git push origin dev
将远程仓库代码进行下拉更新本地代码
git checkout dev
git pull origin dev

远程本地的代码开发流程
公司(项目初建)
创建项目文件夹
Git init
Git add xxxx
Git commit -m "xxx"
Git branch dev
远程搭建仓库
Git remote add origin 仓库地址
Git push origin master
Git push origin dev
家庭
Git clone 仓库地址
Git checkout dev
编辑代码
Git add xxx
Git commit -m "xxx"
Git push origin dev
公司(多次开发)
Git checkout dev
Git pull origin dev
编辑代码
Git add xxx
Git commit -m "xxx"
Git push origin dev
家庭(多次开发)
Git checkout dev
Git pull origin dev
编辑代码
Git add xxx
Git commit -m "xxx"
Git push origin dev
公司项目上线
Git checkout dev
Git pull origin dev
编辑代码
Git add xxx
Git commit -m "xxx"
Git push origin dev
Git checkout master
Git merge dev
Git push origin master
家庭代码更新
Git checkout dev
Git pull origin dev
Git checkout master
Git pull origin master
特殊情况
- 公司家里各开发50%,其中公司的代码提交远程了,但是家里的已经写了,只是提交到了本地,这时直接拉公司的代码,两分代码之间就会进行合并,合并中若有相同改动,则会发生冲突,没有冲突的文件自动过关(并不是覆盖,和想像的不太一样)

- git pull origin dev === git fetch origin dev + git merge origin/dev
- 首先在git fetch origin dev首先先将远程的代码下载到本地的版本库中
- 然后在通过像本地两个分支一样进行merge操作最终将两份代码合并
- origin/dev使用origin的目的就是表示远程的分支,与本地的进行区分(也不能是本地的,本地的dev和本地的dev合并没有意义,所以标识为了,将远程的dev分支合并到本地的dev分支中)
- 这也就解释了为什么我们在pull之前为啥要先切换到那个对应分支,在master中pull dev远程分支,会出现混乱的问题
图总结
