0

git新手在这里。

我在本地仓库中有 2 个分支 a 和 b。所以如果我这样做

git branch
*a
b

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

我想回头。我想撤消“git pull origin” - 我该怎么做?

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

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

我尝试了“git reset --hard”,但这并没有带来我想要处理的文件。我能做些什么来解决这个问题?

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

请帮我。谢谢

4

3 回答 3

3

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

您可以使用以下命令在拉取之前返回本地状态:

git reset --hard HEAD^

这将消除您必须对跟踪文件的任何未提交的更改,如果您想要保留任何类似的内容,您可以使用git stash它们来保存它们。

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

于 2012-12-04T00:42:03.460 回答
2
于 2012-12-04T01:27:24.723 回答
-1

try resetting waaaaay back and the pull branch a

git reset --hard HEAD^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

(add more ^ if you need to go back even more commits)

and then pull

git pull origin a
于 2012-12-04T00:29:09.850 回答