开发者社区> 问答> 正文

Linux下,在分支下使用Git从远程拉取更新时怎样处理常见的冲突?:报错

1, 通过Git clone命令拉取了一个代码, 再用git branch 创建了多个分支a b c (master已有), 现在假设切换到分支a;

2,一个月后远程代码有更新,直接在分支a下用命令git pull后提示错误,说我没指定分支,请问这个怎么解决或者建议? 

我想将代合并到a而已

3,我尝试用git pull git://xxx/xxx/ 来对分支a进行更新, 它提示我有某些文件将被覆盖(overwritten), 接下来用什么命令?


主要就是处理冲突的问题,

1, 从远程拉取更新,如果想保留本地的更改, 要怎么办? ...

展开
收起
kun坤 2020-06-06 13:11:27 1083 0
1 条回答
写回答
取消 提交回答
  • 本地有文件修改没提交到a?######后来我通过git add -s -m "xxx" 提交了######

    我们用git开发流程:

    下面给你介绍下我们的git管理方式,基本可用,但肯定不是最好。

    团队开发:A、B

    A在本地创建自己的分支:

    git checkout -b a

    git push origin a:a // 提交到远程分支

    B在本地创建自己的分支:

    git checkout -b b

    git push origin b:b // 提交到远程分支

    创建develop分支,此分支代码永远都是最新的,A和B开发完成之后都可以merge到develop分支

    git checkout -b develop

    git push origin develop:develop // 提交到远程分支

    创建release分支,此分支用于代码审核与发布版本.(不严格的话可以不要)


    现在解决你的问题:

    A修改了本地代码之后:

    git add .

    git commit -am "fix account bug"

    git checkout develop // 切换到develop分支

    git pull origin develop // 拉取develop分支最新代码

    git merge A // 合并自己开发分支

    git push origin develop // 提交到远程分支

    -----------------------------------

    此时B也修改了代码

    git add .

    git commit -am "fix order bug"

    git checkout develop

    git pull origin develop

    git merge B

    git push origin develop

    说到最后一句话:A和B的分支只合并develop分支。不改变同一个模块的情况下是不会冲突的。

    ######假如出现我以上说的那几种问题了, 怎么办?######谢谢你的经验分享 很详细,让我受益匪浅######

    指定远程分支就行了啊  git pull origin xxx

    ######

    引用来自“viney”的答案

    我们用git开发流程:

    下面给你介绍下我们的git管理方式,基本可用,但肯定不是最好。

    团队开发:A、B

    A在本地创建自己的分支:

    git checkout -b a

    git push origin a:a // 提交到远程分支

    B在本地创建自己的分支:

    git checkout -b b

    git push origin b:b // 提交到远程分支

    创建develop分支,此分支代码永远都是最新的,A和B开发完成之后都可以merge到develop分支

    git checkout -b develop

    git push origin develop:develop // 提交到远程分支

    创建release分支,此分支用于代码审核与发布版本.(不严格的话可以不要)


    现在解决你的问题:

    A修改了本地代码之后:

    git add .

    git commit -am "fix account bug"

    git checkout develop // 切换到develop分支

    git pull origin develop // 拉取develop分支最新代码

    git merge A // 合并自己开发分支

    git push origin develop // 提交到远程分支

    -----------------------------------

    此时B也修改了代码

    git add .

    git commit -am "fix order bug"

    git checkout develop

    git pull origin develop

    git merge B

    git push origin develop

    说到最后一句话:A和B的分支只合并develop分支。不改变同一个模块的情况下是不会冲突的。

    解决你问题:

    1、git reset --hard HEAD^

    2、git pull origin master

    3、git merge master


    ######

    引用来自“viney”的答案

    引用来自“viney”的答案

    我们用git开发流程:

    下面给你介绍下我们的git管理方式,基本可用,但肯定不是最好。

    团队开发:A、B

    A在本地创建自己的分支:

    git checkout -b a

    git push origin a:a // 提交到远程分支

    B在本地创建自己的分支:

    git checkout -b b

    git push origin b:b // 提交到远程分支

    创建develop分支,此分支代码永远都是最新的,A和B开发完成之后都可以merge到develop分支

    git checkout -b develop

    git push origin develop:develop // 提交到远程分支

    创建release分支,此分支用于代码审核与发布版本.(不严格的话可以不要)


    现在解决你的问题:

    A修改了本地代码之后:

    git add .

    git commit -am "fix account bug"

    git checkout develop // 切换到develop分支

    git pull origin develop // 拉取develop分支最新代码

    git merge A // 合并自己开发分支

    git push origin develop // 提交到远程分支

    -----------------------------------

    此时B也修改了代码

    git add .

    git commit -am "fix order bug"

    git checkout develop

    git pull origin develop

    git merge B

    git push origin develop

    说到最后一句话:A和B的分支只合并develop分支。不改变同一个模块的情况下是不会冲突的。

    解决你问题:

    1、git reset --hard HEAD^

    2、git pull origin master

    3、git merge master


    谢谢
    ######

    先用git fetch取了最新的历史(不会进行合并)。再根据自己的需要,把想合并的远程分支(origin/xxxx_branch)合并到自己工作分支来(merge)就可以了。当然也可以反过来,创建一个远程分支的本地分支,再把原工作分支的内容合并到新建分支上来。
    对分布式版本管理还是要有概念才行。

    2020-06-06 13:11:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
新一代高效Git协同模型 立即下载
AGit-Flow:新一代高效Git协同模型 立即下载
AGit-flow:新一代高效Git协同模型 立即下载