git拉取后已解决冲突

git拉取后已解决冲突,git,github,Git,Github,但下一步该怎么办呢 $ git pull Auto-merging views/upload_photo.handlebars CONFLICT (content): Merge conflict in views/upload_photo.handlebars Automatic merge failed; fix conflicts and then commit the result. James@DESKTOP-8VLS7EG MINGW64 ~/Documents/project (

但下一步该怎么办呢

$ git pull
Auto-merging views/upload_photo.handlebars
CONFLICT (content): Merge conflict in views/upload_photo.handlebars
Automatic merge failed; fix conflicts and then commit the result.

James@DESKTOP-8VLS7EG MINGW64 ~/Documents/project (master|MERGING)
$ git merge --abort

James@DESKTOP-8VLS7EG MINGW64 ~/Documents/project.my (master)
$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 2 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        views/upload_photo_BACKUP_4736.handlebars
        views/upload_photo_BASE_4736.handlebars
        views/upload_photo_LOCAL_4736.handlebars
        views/upload_photo_REMOTE_4736.handlebars

nothing added to commit but untracked files present (use "git add" to track)
$git pull
自动合并视图/上传照片。车把
冲突(内容):合并视图中的冲突/上载照片。把手
自动合并失败;修复冲突,然后提交结果。
James@DESKTOP-8VLS7EG MINGW64~/文件/项目(主控|合并)
$git合并--中止
James@DESKTOP-8VLS7EG MINGW64~/Documents/project.my(master)
$git状态
论分行行长
您的分支和“原始/主”已发生分歧,
和分别有1个和2个不同的提交。
(使用“git pull”将远程分支合并到您的分支中)
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
查看/上传照片备份把手
查看/上传\照片\底座\ 4736.把手
查看/上传\照片\本地\ 4736.车把
查看/上传照片遥控器把手
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)
我该怎么办?如果我再次执行git pull,我已解决的冲突文件将被重置。

TL;医生:你有三个选择 我该怎么办?如果我再次执行git pull,我已解决的冲突文件将被重置

你的三个选择是:

  • 使用
    git merge
    (这正是
    git pull
    试图做的事情)。解决冲突并承诺。“解决冲突”部分是最难的部分。参见许多其他关于合并的评论,包括其他SO帖子,例如

  • 使用
    git-rebase
    (您可以告诉
    git-pull
    执行此操作,而不是
    git-merge
    )。这将给您留下完全相同的问题,您必须以相同的方式解决:解决冲突并提交。(见下文。)

  • 放弃。:-)不是一个很有吸引力的选择,但它是一个选择!见下文

长话短说
git pull
命令首先运行(git fetch的一个小变体)
git fetch
,然后运行
git merge
。(或者,您可以告诉
git pull
运行
git-rebase
,作为第二步。)

确切地说,有人推了其中的两个。您的
git fetch
步骤将这些提交带到您的存储库中。同时,您自己的提交(或提交,单数,因为您只有一个)也保留在您的存储库中

我不知道是谁做出了另外两个承诺,但让我们假设是某个叫鲍勃的人。他做出这些承诺的方式是:(1)获取,然后在必要时合并或重新设置基础,即,
git将其他人的工作拉入Bob的存储库,然后(2)做出两次新的承诺,然后(3)
git将他的新工作推送到git的origin上。他在你工作时完成了这三个步骤。等式的关键部分是,他在您设法
git将您的提交推送到origin之前执行了步骤3

您现在比Bob早一次提交,但也比Bob晚两次提交。无论Bob是否在第3步中击败你,这都是事实,但因为他确实赢得了那场比赛,他在你拿到你的东西之前就把他的东西放到了origin上的Git存储库中。收拾残局现在是你的问题。如果您在Bob执行步骤3之前执行了步骤3(
git push origin master
),这将是他的问题。(如果你不被允许推,那么,你永远不会做第三步,而且你总是像这样落后。这不一定是个问题,但请继续阅读。)

整个过程是如何工作的 让我们花点时间来画Git在这一点上看到的东西。Git喜欢从提交开始工作,就像你做的那个和Bob做的两个。提交表示一个完整的快照:您需要(或Bob需要)的所有文件都集中在一个存储库中,就像您(或Bob)说的那样:这很好,这一切都可以。通过运行
git commit
创建每个快照,这会将“索引”(使用
git add
进行更新的内容)中的内容转换为下一次提交

您和Bob都从一个公共快照(commit)开始,您称之为
master
,它是从
origin
获得的,因此您也将此公共快照称为
origin/master
。此提交处于某个长提交链的顶端:

... <- o <- o <- o   <-- master, origin/master
现在你做出承诺(与此同时,鲍勃也在做出承诺,但我们还不担心)。这是一个新的提交,因此它指向了
master
的上一个提示,Git仍然将其记为
origin/master
,因此现在的图形如下所示:

             A   <-- master
            /
...--o--o--*     <-- origin/master
             A     <-- master
            /
...--o--o--*
            \
             B--C   <-- origin/master
...--o--o--*--B--C--A--o--o--...
             A     <-- ???
            /
...--o--o--*
            \
             B--C   <-- origin/master
                 \
                  A'   <-- master
i、 e.相同的启动设置。但他做出了两项承诺,现在:

...--o--o--*     <-- origin/master
            \
             B--C   <-- master
您有三个新提交。事实上,你是唯一一个拥有这三项功能的人。这就是为什么现在你的工作就是解决这个问题

收拾残局 你有两个选择来解决这个问题,当然还有第三个选择:根本不用费心去解决它

标准选项是使用
git-merge
,它为您运行
git-pull
。第二个,通常是更好的选择,是使用
git-rebase
,这通常更复杂

第三种选择是最简单的。你永远不必合并,你只需要不断发展和分化就可以了。你永远不会拿起鲍勃或其他人的任何新作品,无论你从Git上的origin上拿起了什么。(在这种情况下,您可能不想再叫这个
master
,而是开始叫它
jessie
。这个名字并不那么重要,但如果您必须先把它放在一边,然后再回来,您可以给它起自己的名字,而不是
master
,这样您就可以更好地记得自己在做什么。)

第三种方法的优点和缺点应该是显而易见的:它非常简单,你不需要做任何工作,但当然你也不会从别人的工作中受益。假设你决定不去
             A------M   <-- master
            /      /
...--o--o--*      /
            \    /
             B--C   <-- origin/master
...--o--o--*--A---M  <-- master
            \    /
             B--C   <-- origin/master
...--o--o--*--A---M  <-- master, origin/master
            \    /
             B--C
...--o--o--*--B--C--A--o--o--...
             A     <-- master
            /
...--o--o--*
            \
             B--C   <-- origin/master
             A     <-- ???
            /
...--o--o--*
            \
             B--C   <-- origin/master
                 \
                  A'   <-- master
             D--E--F   <-- master
            /
...--o--o--*
            \
             B--C      <-- origin/master
             D--E--F   <-- ???
            /
...--o--o--*
            \
             B--C        <-- origin/master
                 \
                  D'-E'-F'   <-- master
...--o--o--*--B--C--D--E--F--o--o--
CONFLICT (content): Merge conflict in views/upload_photo.handlebars