如何修复git中的“分歧分支”?

Ale*_*lex 5 git

我克隆了一个存储库并签出了一个分支,现在当我执行 a 时,git pull我看到了错误

hint: You have divergent branches and need to specify how to reconcile them.
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题而不需要重新定位或合并某些东西?是否有一些 git 命令可以使本地结帐达到与远程存储库相同的状态?

我不想保留任何本地更改,我希望本地分支与我试图拉取的远程分支完全相同。当地的变化我不感兴趣。

有一个工作正常的解决方法:

cd ..
rm -rf repo
git clone <repo-url.git> 
cd repo
git checkout <branch> 
Run Code Online (Sandbox Code Playgroud)

但也许有更简单的方法?删除完整的存储库花了很长时间。

再说一遍:我想要一个与遥控器上完全相同的分支。我不想合并或变基任何东西。我希望本地分支的状态与远程分支的状态完全相同。

joa*_*nis 15

长话短说

git reset --hard origin/<branchname>
Run Code Online (Sandbox Code Playgroud)

细节

如果您确实想放弃任何本地更改,而只是将本地分支设置为远程分支的状态,则需要进行硬重置。

假设您已经<branchname>签出了分支,并且您想要将其重置为原始版本:

git fetch
git reset --hard origin/<branchname>
Run Code Online (Sandbox Code Playgroud)

这将丢弃该分支上的任何本地提交,以及您在沙箱中本地进行的任何编辑。由于您正在考虑完全删除本地沙箱,我相信这正是您想要的。


Ale*_*lex 1

也许以下过程有效:

  1. 您结账主要

     git checkout main
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后你删除你的分支

    git branch -D <branch>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您再次结帐您的分支机构

    git checkout <branch> 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 您可以执行git pullgit fetchgit st操作来检查所有内容是否都是最新的