git多人协作 代码提交流程

206 阅读4分钟

简明的 git 代码提交流程

原则:不能在 master分支上修改任何文件。master分支上的变更只能通过git pullgit merge获得。在master分支下,不能手动修改任何文件。

本地dev分支开发(首先,创建dev分支,然后切换到dev分支上进行开发)

  1. git checkout -b dev :创建并转到dev分支
  2. git branch:查看当前分支,当前在dev分支

我们自己有一个分支用来修改自己的代码,例如我的分支是dev分支。我把代码修改完成了,现在不知道有没有冲突

  1. git status: 查看dev分支工作区代码跟dev分支暂存区的差别
  2. git add .: 将dev分支工作区修改过的所有代码添加到暂存区.表示当前目录
  3. git commit -m "注释": 将暂存区的代码添加到本地仓库dev分支
  4. git merge master:dev分支的工作区同步到本地master分支

这时,dev工作区的文件会回到master分支的状态,但是不用担心,因为我们最新的修改已经保存到dev本地仓库了。这样做保证了master和dev分支是没有冲突的。有冲突的话,就在dev分支解决。如果没有任何报错,那么直接转到合并分支与提交

  1. 如果有冲突,根据提示,把冲突解决,保存文件。然后执行上面第4和第5步

合并分支与提交到线上(master分支上的变更只能通过git pullgit merge获得)

  1. git checkout master: 切换到master分支
  2. git pull:同步线上master仓库,确保当前master分支是最新代码
  3. git merge dev: 合并dev分支到master(需当前在master分支)
  4. git push:推送到线上master分支(需当前在master分支)
  5. git branch -d dev:开发完成,删除本地dev分支;git push origin:dev:删除远程的dev分支(可选)

总结

  1. 拉取代码到本地
git clone http:/xxxxxx.git
  1. 在本地建立一个新个人分支qxy,并保证远程仓库也有这个分支
git checkout -b qxy
git push origin qxy:qxy
// qxy是新建的本地分支名,origin/qxy是同名的远程分支名
git branch -a
// 查看一下,发现自己已经处于本地分支qxy下,且远程也存在这个分支。此时就可以在这个分支上进行自己的开发了
  1. 经过一系列开发后,你在本地分支qxy有了一些改动,此时可以将这些改动push到自己的远程分支qxy
git push origin qxy
  1. 如果你已经确定改动无误,且打算合并到主分支master,可以进行以下操作:在本地切换到master分支
git checkout master
  1. 确保在多人协作下不会错过别人推送到master分支上的改动,要先pull一下master分支
git pull origin master
  1. 将自己的分支qxy与master分支合并
git merge qxy

git status
// 可以通过上面指令查看得知你当前合并到master分支的qxy分支有多少次commit要被推送到master上
  1. 将这些commit推送到master分支
git push origin master
// 从而完成个人分支qxy与master分支上的合并
  1. 此时,虽然你完成个人分支qxy与master分支上的合并,但你可能继续在qxy分支上开发,而此时项目的其他开发人员可能有些更新也同样merge到了master上,如何确保你的qxy分支和master分支上完全一致呢?

    • 切换到master分支上,然后拉取master分支上的最新代码。上述步骤4、5
    • 切换回自己的qxy分支,并将qxy分支和刚刚拉取过来的master合并
git checkout master
git pull

git checkout qxy
git merge master

面试题:git如何管理一个项目

  1. git init 初始化git仓库(新项目才有这一步)
  2. git clone 将远程仓库的项目下载下来
  3. git checkout -b dev(dev 为本地分支名称)
  4. git add . 将工作区文件存在暂存区
  5. git commit -m "" 从暂存区存到存储区
  6. git checkout master 切到master分支
  7. git merge dev 合并分支,合并分支后将分支删除
  8. 使用git push 将其上传到远程仓库
  9. 第二天上班,先 git pull 一下,更新最新代码