Git pull origin创建了一个问题

Git pull origin创建了一个问题,git,github,repository,git-svn,Git,Github,Repository,Git Svn,这是个新手 我在本地回购协议中有两个分支机构a和b。 所以如果我这样做了 git branch *a b 然后我错误地做了“git pull origin”,它拉了一堆文件,扰乱了我在分支a上的工作环境 我想回去。我想撤销“git pull origin”-我该怎么做 我尝试了“git pull origin a”,但它给了我数百个要合并的文件,在一个大文件列表之后,它给出了以下消息: 无法拉取,因为您有未合并的文件。 请在工作树中修复它们,然后使用“git add/rm” 根据需要标记解析,

这是个新手

我在本地回购协议中有两个分支机构a和b。 所以如果我这样做了

git branch
*a
b
然后我错误地做了“git pull origin”,它拉了一堆文件,扰乱了我在分支a上的工作环境

我想回去。我想撤销“git pull origin”-我该怎么做

我尝试了“git pull origin a”,但它给了我数百个要合并的文件,在一个大文件列表之后,它给出了以下消息:

无法拉取,因为您有未合并的文件。 请在工作树中修复它们,然后使用“git add/rm” 根据需要标记解析,或使用“git commit-a”

我尝试了“git重置——很难”,但这并没有带来我想要处理的文件。我能做些什么来解决这个问题

有一条信息可能会有所帮助:在执行“git pull origin”之前,对“git log”的响应只是我的团队的提交(仅在该分支上工作),但现在在我执行“git pull origin”之后,“git log”的结果是来自公司每个人的状态


请帮帮我。谢谢

请尝试将waaaaay复位,然后拉动分支a

git reset --hard HEAD^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(如果需要返回更多提交,请添加更多^

然后拉

git pull origin a

尝试重新设置WAAAAY back并拉动分支a

git reset --hard HEAD^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(如果需要返回更多提交,请添加更多^

然后拉

git pull origin a

除非您已将pull配置为在远程更改的基础上重新设置本地更改的基础,否则使用pull将使您的更改与远程提交合并。只要您没有做任何进一步的提交,就会使
HEAD
ref指向由拉操作创建的合并提交。该提交将有两个父级,一个是合并前的状态,另一个是合并前远程分支的状态。这些可以分别通过名称
HEAD^
HEAD^2
来引用

在拉车之前,您可以通过以下方式返回您所在的州:

git reset --hard HEAD^
这将吹走您必须跟踪的文件的任何未提交的更改,如果您想要保留类似的内容,您可以使用
git stash
保存它们


在执行重置之前运行
git branch savepoint
以保存当前状态也是一个好主意,以防重置使情况变得更糟。

除非您已配置为在远程更改的基础上重新设置本地更改的基础,使用pull会将您的更改与远程提交合并。只要您没有做任何进一步的提交,就会使
HEAD
ref指向由拉操作创建的合并提交。该提交将有两个父级,一个是合并前的状态,另一个是合并前远程分支的状态。这些可以分别通过名称
HEAD^
HEAD^2
来引用

在拉车之前,您可以通过以下方式返回您所在的州:

git reset --hard HEAD^
这将吹走您必须跟踪的文件的任何未提交的更改,如果您想要保留类似的内容,您可以使用
git stash
保存它们


在执行重置之前运行
git branch savepoint
以保存当前状态也是一个好主意,以防重置使情况变得更糟。

这是一个完美的使用案例。reflog存储您的头和分支的头在过去的位置的历史记录。跑吧,你会看到的。在您的情况下,正确的命令可能是
git reflog a
。这将显示
分支过去的状态。查找正确的行,然后执行
git重置

如果您只是执行拉操作而不执行其他操作,那么命令是
git reset--hard a@{1}
。这意味着“将当前分支恢复为
a
一次更改之前的状态”。如果您做了更多的更改,那么您可能需要更进一步(例如,
git-reset-hard a@{4}


这比使用
HEAD^^^^^…

更方便、更可控。这是一个完美的使用案例。reflog存储您的头和分支的头在过去的位置的历史。运行,您就会看到。在您的情况下,正确的命令可能是
git reflog a
。这将显示您过去的状态您的
a
分支的。查找正确的行,然后执行
git重置

如果您只是做了拉操作,而没有做任何其他操作,那么命令是
git reset--hard a{1}
。这意味着“将当前分支恢复到
a
一次更改之前的状态”。如果您做了更多更改,则可能必须进一步执行(例如
git reset--hard a{4}


这比使用
HEAD^^^^^…

非常感谢您!!!!您让我的日子变得更加方便和可控。(我正在从您的解决方案中复制语法)这不会从拉取之前还原为本地状态。它会将本地状态从远程还原为状态。还有更好的方法来引用一些提交次数,通过使用
HEAD~2
将与
HEAD^^
相同,并且您可以增加数量以增加您看到的提交次数ck.qqx主意不错。我很喜欢。但是我的本地文件很干净-我没有任何想要提交的代码。我的问题是-我无法继续工作,因为我的本地目录因为拉其他文件而被弄乱了。所以这对我的案例来说是一个很好的解决方案。非常感谢你!你让我度过了一天YYYY。(我正在从你的解决方案复制语法)这不会从拉之前还原为本地状态。它会将本地状态从远程状态转换为本地状态。另外,使用
HEAD~2
引用提交次数的更好方法与
HEAD^^
相同,您可以增加该数量以增加numb