Git set-url来源

时间:2018-09-25 15:11:21

标签: git

服务器:

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用户)

1 个答案:

答案 0 :(得分:0)

如果您的分支位于远程分支之前,则Git将永远不会丢弃您的本地提交(如果您刚刚编写了一堆提交,那将是非常糟糕的事情。)

如果要将分支还原为另一个远程分支上指向的较早提交,则需要先git fetch,然后再git reset --hard origin/<branch-name>。您实际上是在指示Git放弃分支中的一堆工作,以返回到较早的时间点,这在Git中不是常见的工作流程。

通过添加一个 second 遥控器并将其保留在原位,而不是在第一个遥控器的URL周围切换,您实现目标的可能性就很大。