服务器:
repo1.git (old code)
repo2.git (latest code)
工作站:
repo1> git remote set-url origin ssh://repo2.git
repo1> git remote -v (yes, I see that the origin has changed)
repo1> git pull
似乎从repo2中提取了最新代码,因为它具有最新标签,并且我可以看到几个文件的代码已更改。但是,如果我尝试还原:
repo1> git remote set-url origin ssh://repo1.git
repo1> git remote -v (yes, I see that the origin has changed back to repo1)
repo1> git pull
现在它说回购是最新的,我期望它可以将旧代码拉回原处。我想念什么?
谢谢! (新的Git用户)
答案 0 :(得分:0)
如果您的分支位于远程分支之前,则Git将永远不会丢弃您的本地提交(如果您刚刚编写了一堆提交,那将是非常糟糕的事情。)
如果要将分支还原为另一个远程分支上指向的较早提交,则需要先git fetch
,然后再git reset --hard origin/<branch-name>
。您实际上是在指示Git放弃分支中的一堆工作,以返回到较早的时间点,这在Git中不是常见的工作流程。
通过添加一个 second 遥控器并将其保留在原位,而不是在第一个遥控器的URL周围切换,您实现目标的可能性就很大。