Git 如何解决分支和分支/分支之间的分歧?

Git 如何解决分支和分支/分支之间的分歧?,git,rebase,git-merge-conflict,Git,Rebase,Git Merge Conflict,通过重置为较早的提交,我无法使本地分支恢复正常。我一直在本地获取合并冲突,而remote上的版本没有任何冲突,我想要的是在本地分支中获取fremote的精确副本 我能做的是git checkout,我基本上会在我的本地目录中得到一份远程文件的副本,但我也会得到: $ git checkout bd8b876 Note: checking out 'bd8b876'. You are in 'detached HEAD' state. You can look around, make exp

通过重置为较早的提交,我无法使本地分支恢复正常。我一直在本地获取合并冲突,而remote上的版本没有任何冲突,我想要的是在本地分支中获取fremote的精确副本

我能做的是
git checkout
,我基本上会在我的本地目录中得到一份远程文件的副本,但我也会得到:

$ git checkout bd8b876 
Note: checking out 'bd8b876'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
我不想这样,因为我还需要在这个部门工作

我不喜欢启动新分支,因为分支名称与链接到JIRA票证的脚本绑定在一起。如果没有别的办法,我会这么做

我试图解决的问题是:

git reset --hard HEAD
现在是8dc6510更新main.py

git status
    On branch OS-4055-header_bar_Drive_parameters
    Your branch and 'origin/branch' have diverged,
    and have 19 and 3 different commits each, respectively.
      (use "git pull" to merge the remote branch into yours)
    nothing to commit, working directory clean
但这会使我的本地文件始终处于合并状态。我认为,
pull
结合了
fetch
merge

我也尝试过(重置后):
$git fetch origin branch:branch
,但即使这样也不能得到预期的结果。我在另一个系统上检查了分支,文件按预期输入(没有合并冲突)。如何使本地分支工作副本进入该状态,而无需完全删除源目录? `

我一直在本地获取合并冲突,而版本在远程 没有任何冲突,我想要的是得到一份准确的副本 我的本地分支机构中的f远程

所以你想把遥控器里的东西当作“好”东西。只需执行新的克隆并删除当前的工作目录

我如何让本地分支机构的工作副本在没有 需要完全删除我的源目录吗

因此,您不想这样做,但无论如何,您都必须删除发散的本地提交,因为它们发散了,您希望保留远程中的内容

git-commit——修改所有发散的本地提交,甚至是
git-reset——硬的
,直到您有效地删除了所有本地提交。您可以通过多种方式实现“提交”的删除。执行此操作,直到到达最后一个公共提交本地和远程共享

在这里,如果有任何文件被修改,则
git stash
it或
git checkout--
it将其还原为原始状态

现在,
git pull
将获取并合并远程中您迫切需要的所有内容

重新应用您隐藏的任何想要的更改,创建新的提交并将其推送到远程。重复此步骤,直到Jira问题解决;)


顺便说一句:我仍然不相信你的本地历史和遥远的历史是如何分歧的。我希望您将自己置于这种情况下,没有其他人会在没有合并策略的情况下推进您的分支机构…

您的工作目录是干净的。为什么需要完全删除源目录?为什么签出的是提交而不是分支?为什么不拉合并更改?没有人希望冲突。难道不可能解决这些问题吗?其他人是否与您在同一分支机构作出承诺?或者在更新历史记录(如重定基址或重置)后是否强制推送?是否有其他人提交到同一个分支?如果您不希望在远程分支上提交,并且没有其他人使用该分支,则可以再次强制推送。请澄清是否要在远程分支上保留提交?如果你不这样做,就需要用力推。如果不希望本地提交,则需要对远程分支(源/分支)进行硬重置。好了,这里没有强制拉。我还没有试过@evolutionxbox在上面的评论中建议的方法:
git checkout branch&&git reset--hard origin/branch
帮了我的忙。谢谢你,安妮沃特斯!好吧,最后我要说的是:摧毁任何局部分歧,然后重新开始。