【版本控制 sourceTree多人协作开发】理解git原理之后再使用sourceTree!
·
事实证明,第一次使用sourceTree进行多人协作开发时,都会遇到这样或者那样的问题,会浪费时间整半天,究其原因,是没有将git的原理和sourceTree的操作结合起来理解透彻,这里我就来总结总结。
一、git指令开发
首先来看看正常开发时的git指令git指令
git clone git@server-name:path/repo-name.git //把远程仓库克隆到本地
git checkout -b dev //到对应文件夹下新建名为 dev 的开发分支,并切换到该分支:
git add . //迭代需求开发完成后,添加所有修改到暂存区
git commit -m ‘提交注释’ //提交所有暂存区中所有修改,必须加注释
git push origin dev:dev //将本地 dev 分支上传到远程仓库,并以 dev 命名
当涉及多人协作时,需要先将远程的更新垃取并合并到本地:
git checkout master //切换到主分支
git fetch origin //抓取远程主机的所有更新到本地
git merge origin/master //合并远程master分支到本地master分支
git checkout dev //切换到开发分支
git merge master //将本地master分支合并到当前分支dev
二、sourcetree界面对应
sourcetree进行版本控制最好是使用英文版,界面和git指令可以一一对应,奈何这个PC机下了两次都是中文版。。。那我们就来看看界面的对应关系
当涉及多人协作时,sourceTree无疑简化了操作,方面很多,对应到git指令
git checkout master -->双击本地master分支,切换过程需要等一小会
git fetch origin -->点击获取(fetch)按钮,这时候拉取(pull)按钮就会提示有多少更新
git merge origin/master -->这一步换成(pull)按钮操作,拉取更新到本地,此时需保证本地dev的更新都已经提交
git checkout dev -->双击本地dev开发分支
git merge master -->在本地dev分支单击右键,选择将本地master分支合并到当前分支
三、图解git操作原理
经过前两步,已经基本会使用git指令和sourceTree进行开发,但不解其原理很容易忘记这些操作,下面是我总结的git操作原理,有助于梳理git原理和指令操作
该图对上文未提到的“解决冲突”也标注出来的,当从远程合并过来的代码和本地代码有冲突时,需要手动解决冲突,这时做好是回到自己的开发环境,比如sublime,解决完冲突之后再提交
介于 <<<<<<<(七个‘<’) HEAD 和 ======= 的内容是原有的内容
介于 ======= 和 >>>>>>> 是拉取下来的代码
四、一不小心直接在master分支开发了
在多人协作的过程中,每个人都在自己的本地开发分支开发,但是如果一不小心直接在master分支开发了咋办?解决方法是 stash和pop,由于没一个版本的sourceTree的指令位置不一样,所以就单记录git指令了
git stash //暂存当前正在进行的工作,使当前分支恢复到上次提交的状态
git stash pop//释放暂存的工作到当前分支
所以,误在主分支开发,解决方法是
git stash //在主分支使用该命令,保存正在进行的操作,恢复master分支的状态
git checkout dev //切换到自己的本地开发分支
git stash pop //释放暂存的工作到当前分支
另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
更多推荐
已为社区贡献1条内容
所有评论(0)