Git创建branch 与 解决分支冲突

由于之前写一个Spring项目的时候是自己和一位大佬一起协作的,在中间差点因为我的git命令不熟悉而导致我的本地分支错误合并。这里仔细写一下git创建分支时候的一些坑和解决分支冲突时候的一些方法。
先写一下一些比较常用的命令

版本回退命令

git reset --hard 版本号

版本回退后后悔了怎么办?

git reflog

查看未来的版本号
然后

git reset --hard 版本号

想要让git log --graph看到的东西更好看
不妨使用

git rebase branch

你会有一些惊喜的发现
下面进入正文

创建分支

我们可以使用

git checkout -b dev

创建一个名为dev的分支, 并将HEAD指针指向dev分支

这需要加入一个-b参数

它的效果等同于

git branch dev

git checkout dev 

而分支的意义在于当使用git来进行团队协作的时候,我们需要各自独立实现自己的所负责的功能,但是很显然我们不可以把所有工作都放到master分支中,这就是我们的创建分支的必要,每个人将自己创建的分支中进行分支合并到master主分支。

我们使用

git merge branch 

合并分支,

接着我们可以放心的删除dev分支了,我们使用

git branch -d dev

删除dev分支

解决分支冲突

当master的版本高于分支的版本的时候这个时候合并分支

git merge branch_name

会产生分支冲突。

  1. 这个时候可以先使用git的自动智能合并
git pull
  1. 如果提示失败,那么这个时候可以自己手动解决分支冲突(就是自己按照git在文件中的提示删除master分支或者自己创建的分支的内容),然后再将这个改动提交
    我们可以使用带参数的一个log命令看到中间的一个过程
git log --graph 

我的实验过程是这样的

分支管理策略

通常合并分支是,Git会使用Fast Forword模式,但是这个模式在删除这个分支后就会丢掉这个分支信息。所以如果强制禁用Fast Forword模式,git就会在merge的时候生成一个新的commit
我们使用

git merge --no-ff -m "logs here" branch_name 

这个我们这个分支合并动作就会作为一次commit从而记录在master了.

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:

到这里差不多把平时踩过的坑都写了一遍
参考资料:廖雪峰的博客

原文地址:https://www.cnblogs.com/yfc0818/p/11072719.html

时间: 2024-08-12 13:33:13

Git创建branch 与 解决分支冲突的相关文章

Git中使用amend解决提交冲突

问题描述       场景:当你提交的时候,发现跟要合并的流有冲突,你需要解决完冲突再次提交. 如果在SVN时代,你可以直接在本地解决完冲突再提交就可以了,因为SVN会把正确的代码先提交到服务器,至于有冲突的代码,你需要在本地解决完冲突再提交. 但在Git中这样做行不通,Git中每次提交都是完整的,也就是说,即使你这次提交有中冲突的代码,它也一并会推送到要合并的流,每次提交会有一个change_id,当你解决完冲突提交后,这个change_id又会发生变化.这样导致的直接后果是:由于Git是由提

git 创建与推送分支

1:创建本地分支 dev $ git branch dev 切换至 dev 分支 $ git checkout dev 2:查看当前分支 $ git branch * dev master 3:查看远程库的信息: $ git remote -v 推送至远程分支: 第一次创建后推送: git push origin dev: dev $: git push origin <local_branch_name>:<remote_branch_name> 之后,如果当前在develop分

eclipse 项目修改和更新项目,回退版本,解决分支的冲突的办法

1.我在github建立了3个分支. 2.把其中一个分支拉到本地. 项目修改提交到远程库 3.修改完代码以后commit项目,点击项目右击->team->commit 4.然后提交push到github上,点击项目右击->team->push 更新项目 1.fetch项目,右击项目->team ->fetch 2.pull项目,右击项目->team->pull 回退版本 1.右击项目,->team->show  location history

git ,创建生成 making git-svn work on mac tiger

http://www.mikeheijmans.com/2008/04/make-git-svn-work-on-mac-osx-tiger/ After a few hours of googling and pull some hair out, I have finally figured out how to make git-svn work on Mac OSX 10.4 Tiger. If you have installed git on your Mac using mac-p

GIT 分支管理:创建与合并分支、解决合并冲突

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了.你

git创建分支并提交项目

git 创建分支, 切换分支, 合并分支, 删除分支及提交[commit提交到本地仓库push名利提交到远程服务器], 检出[pull], 冲突修改, 本地仓库同步远程服务器[pul和push命令l]操作 开发中常用操作 删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失] 查看状态:git status 添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上] 添加描述:git commit -m "描述或备注类似sv

ecplise中git创建分支/提交分支/合并分支操作

ecplise中git创建分支/提交分支/合并分支操作 标签: git分支分支合并分支提交 2015-10-21 12:12 661人阅读 评论(0) 收藏 举报  分类: git(5)  版权声明:本文为博主原创文章,未经博主允许不得转载. 1创建分支 1.1项目右键-->team-->switch to -->new branch.选择原始分支和新建分支名称(一般项目名称+人名+时间).  1.2切换分支(项目右键->team->switch to ->分支名称),

Git创建分支及合并分支代码

1.首先切换到想要合并到的分枝下,运行'git merge’命令 (例如将dev-20180608分支合并到dev-20180622分支的话,进入dev-20180622分支运行git merge dev-20180608命令) 2.如果合并之后的代码有冲突,如下图红框中所示,此时需要手动解决冲突后再提交上去. 3.解决冲突:如下图所示,两个分支冲突的代码会以”=======”字符串分隔开来,分隔符上面为本分支的代码,分隔符下面为合并过来的分支代 码.此时根据实际情况判断需要保留哪个分支的代码.

git 创建远程分支和删除 master 分支

. . . . . 最近需要将不同的客户的代码分开管理,所以需要为这些代码分别创建分支. 目前版本库中分支结构如下: [[email protected]:Project]$ git branch -a* master remotes/origin/HEAD -> origin/master remotes/origin/masger remotes/origin/master 其中 master 分支是客户 A 所使用的分支. 其它客户则以 masger 分支为基础版本创建. 大致需求的流程如