记一次项目中遇到的git问题

前言

因为之前在学校里面做项目,对git接触不是太多,项目没有太多不间断需求,所以基本上开发时很少有建立比较多的分支,对分支这一块不熟,导致今天出现了一个问题。

遇到的问题

前几天做的事

前几天有做一个需求,是在项目的master分支上新建一个分支a。
具体做法:克隆项目的master分支到本地git clone 远程地址,默认是克隆项目的master分支到本地,然后在master新建一个分支add,并切换到该分支下,git checkout -b add,然后在这个分支上干完活之后,进行提交:

git add .
git commit -m"xxxx"
git push origin add

这时候远程就有了我的add分支了,这样还需要进行合并,因为是实习期间的项目,所以合并都在远程上提一个merge请求,然后由部门老大进行合并,然后就ok了。

那么问题来了

因为习惯了克隆了一次下来,不习惯再去远程克隆一次。今天产品那边又提了一个需求,所以习惯成自然,我就直接在前几天从远程克隆下来的那个文件目录下进行干活了。
具体干的活是什么

  • 这次需求还是直接在master分支下新建一个分支bb进行干活 git checkout -b bb
  • 在bb分支下进行干活,干完活之后,进行提交:

    git add .
    git commit -m"xxxx"
    git push origin bb
    问题分析:因为之前老大有将我做的add分支合并到远程的master分支上,所以做了上述的工作之后,这时候本地的master分支和远程的master分支不同,所以这时候如果将远程的bb分支和master分支进行合并会出现冲突问题。
    问题解决:
  • 切换到本地分支master,将远程分支master合并到本地mastergit pull origin master
  • 再切换到bb分支下,git rebase master,最后会把你的”bb“分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到”.git/rebase“目录中),然后把”bb“分支更新到最新的”master“分支,最后把保存的这些补丁应用到”bb“分支上。
  • git push -f origin bb这时候再将其修改push到远程的bb分支上,最后再将bb分支合并到master上。

猜你喜欢

转载自www.cnblogs.com/sminocence/p/9009643.html