git推送放映;“一切都是最新的”;但比较显示出差异

git推送放映;“一切都是最新的”;但比较显示出差异,git,github,version-control,Git,Github,Version Control,您好,我有这个问题,我有一个开源回购协议。每次我从主分支开始工作时,即使我的工作不针对主分支,通常在代码合并时,我会向上游拉(原始回购),使我的主分支恢复正常。最近,在创建了一些更改之后,这给我带来了一些问题,并承诺我将上游拉回到与原始存储库相同的级别,当我推到克隆的回购时,它表示一切都是最新的。但当我在github上进行比较时,它显示出与上游的不同。 我试过了 git签出主机 再次向上游拉动,然后 再推 那不行! 我试着退房 1. git checkout HEAD~5 2. git p

您好,我有这个问题,我有一个开源回购协议。每次我从主分支开始工作时,即使我的工作不针对主分支,通常在代码合并时,我会向上游拉(原始回购),使我的主分支恢复正常。最近,在创建了一些更改之后,这给我带来了一些问题,并承诺我将上游拉回到与原始存储库相同的级别,当我推到克隆的回购时,它表示一切都是最新的。但当我在github上进行比较时,它显示出与上游的不同。 我试过了

  • git签出主机
  • 再次向上游拉动,然后 再推
  • 那不行! 我试着退房

     1. git checkout HEAD~5 
     2. git pull upstream master 
     3. git add   
     4. git commit 
     5. git push
    
    他仍然不工作

    我还想知道一个简单的方法,为每个问题创建一个快速修复分支,避免从我的主分支做任何事情

    我顺流而下,回到与原始存储库相同的级别

    如果要用上游/主数据替换克隆/原始回购主数据 然后一种方法是用上游/主节点重置原点/主节点

    现在,原点/主节点和上游/主节点之间应该没有区别

    注意:强制(-f)推将用本地/master=上游/master历史替换原点/master


    我还想知道一个简单的方法,为每个问题创建一个快速修复分支,避免从我的主分支做任何事情

    您可以直接从上游/主站本地创建和签出新分支

    # no matter in which branch you are now!
    $ git fetch upstream
    $ git checkout -b quick-fix upstream/master  # chekcout to 'quick-fix' branch with the same history of 'upstream/master' 
    

    要使您的
    原点/master
    上游/master
    相同,需要强制拉/推(可能上游/master更改了历史提交)。因此在此之前,您需要将从本地
    分支签出的分支推送到
    原点
    ,以便这些分支上的更改不会丢失。然后通过以下步骤将
    原点/主控
    上游/主控
    同步:

    git checkout master
    git pull -f upstream master
    git reset --hard upstream/master
    git push -f origin master
    
    现在
    origin/master
    上游/master
    同步。您可以使用以下命令进行双重检查:

    git log origin/master..upstream/master
    git log upstream/master..origin/master
    

    如果两个命令都没有输出,这意味着
    origin/master
    upstream/master
    处于同一级别(同步)。

    谢谢你的回答谢谢你的回答与第一个差不多。
    git log origin/master..upstream/master
    git log upstream/master..origin/master