记一次项目中遇到的git问题
Posted sminocence
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次项目中遇到的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分支下进行干活,干完活之后,进行提交:
问题分析:因为之前老大有将我做的add分支合并到远程的master分支上,所以做了上述的工作之后,这时候本地的master分支和远程的master分支不同,所以这时候如果将远程的bb分支和master分支进行合并会出现冲突问题。git add . git commit -m"xxxx" git push origin bb
问题解决:- 切换到本地分支master,将远程分支master合并到本地master
git pull origin master
- 再切换到bb分支下,
git rebase master
,最后会把你的”bb“分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到”.git/rebase“目录中),然后把”bb“分支更新到最新的”master“分支,最后把保存的这些补丁应用到”bb“分支上。 git push -f origin bb
这时候再将其修改push到远程的bb分支上,最后再将bb分支合并到master上。
以上是关于记一次项目中遇到的git问题的主要内容,如果未能解决你的问题,请参考以下文章