git协作开发
- 如果需要创建一个带有版本跟踪记录的项目,可以使用在该目录下git init初始化一个版本仓库。或者git clone克隆一个已经存在版本仓库。
- git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。Git 会自动为你将此远程仓库命名为origin。
bytedance@FVFC91LDL414 ~ % git clone https://github.com/boatingfisher/protobuf-json
#例如我们拷贝 Github 上的项目:
Cloning into 'protobuf-json'...
remote: Enumerating objects: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31
Unpacking objects: 100% (31/31), done.
#拷贝完成后,在当前目录下会生成一个 protobuf-json 目录:
bytedance@FVFC91LDL414 ~ % cd protobuf-json
bytedance@FVFC91LDL414 protobuf-json % pwd
/Users/bytedance/protobuf-json
- 在本地项目文件夹下建立a分支
git branch a #建立本地a分支
git checkout a #切换到a分支
git checkout -b a #建立并切换到a分支,相当于以上两条命令
- 在a分支上进行代码的编写,完成后提交代码到远程的 a分支。按顺序执行下面代码:
#将项目的代码变化提交到缓存区(包括修改、添加和删除)
git add -A
#将缓存区的所有内容提交到仓库,并附上提交说明:'xxx'
git commit -m 'xxx'
#将代码提交到远程a分支
git push origin a
- 远程 a分支合并到远程的 master分支
a. 如果从你克隆项目到本地到你准备合并a分支的这个过程中都没有人提交过代码到master分支,那么当前的a分支是从当前的master分支牵出来的,则可以在GitHub上发起Pull requests请求将a分支的代码合并到master分支。
b. 如果从你克隆项目到本地到你准备合并a分支的这个过程中有人提交过代码到master分支
#首先将本地项目切回master分支
git checkout master
#将最新的master代码拉到本地master分支
git pull origin master
#切换到本地a分支
git checkout a
#将本地master分支合并到当前分支
git merge master
合并好以后重复步骤,将本地a分支提交到远程,然后即可将远程a分支合并到远程master分支
- 如何复制原有分支
git checkout oldBranch #本地切换到原有分支
git pull #将最新的原有分支拉到本地
git checkout -b newBranch #从原分支复制到新分支
git push origin newBranch #将新分支的代码推送到远程服务器
git pull #将最新的新分支拉到本地
git branch --set-upstream-to=origin/newBranch #关联
git pull #再次拉取代码