git的push冲突以及分支的基本概念

113 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

前言

之前我们已经了解到git到底是个什么,以及git一些小操作。接下来我们将会学习其他的一些更深层的东西。

push冲突

首先来讲下这个问题出现的场景,在我们冲远端数据库pull东西后,如果有人对远程数据库进行了修改,然后我们又将自己的修改push到远端数据库时,这个时候就会出现push冲突,因为如果不出现这个冲突的话,别人或者自己的修改就会被覆盖。这时就需要我们对文件进行手动合并。

解决方法

当我们遇见这个问题时,一般就会出现下面这几句话

To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

此外还有对应冲突文件的提示Merge conflict in 冲突的文件名 Automatic merge failed; fix conflicts and then commit the result.根据信息提示,打开冲突的文件,然后修改。

文件中<<<<<<< HEAD到=======之间的是本地的修改,=======到>>>>>>>之间的是远程的修改。最后手动合并之后,再进行以下步骤

git add 文件名称
git commit -m "合并"
git pull
git push -u origin master

分支的基本概念

使用git的一般都是程序员,程序员开发软件的时候并不是一个人负责全部代码,而是分工协作。每个人负责的版块并不一样,也就意味着需要许多版本进行开发。幸运的是git的功能正好满足这个需求。分支我们最常想到的就是树枝,而软件也是这样的,每个分支之间是不受其他分支的影响的。我们建立自己的分支进行自己那一部分的功能开发。