如何将 "master" 标签移动到 Git 过去的某个时间点?

How to move "master" label to some point in the past in Git?

我在设计我的应用程序时意识到,我正在做的是一个单独的分支。我将我对本地存储库的更改提交到 "master",但没有提交到远程存储库。

在 IntelliJ 的 VCS 日志中,我看到了下图:

即我和远程有两条不同的发展道路。

HEAD 位置表明,我已经签出到我希望 master 所在的位置。

我怎么把master放在这里?这个操作的名称是什么?合并?变基?或者什么?

我想将我的分支保留为 AsyncIntegrate,让 master 我与 origin/master 同步。我还没准备好合并这些平行线。

更新

抱歉,最后我想将 master 移动到 origin/master 所在的位置:

我认为这应该分两步完成。

更新 2

如果我从 IntelliJ 调用以下命令是否正确:

听起来您想将当前的工作分支转移到一个名为 AsyncIntegrate 的新分支,然后将本地 master 重置为 origin/master

创建功能分支:

git checkout master
git checkout -b AsyncIntegrate

将您的本地主机重置为 origin/master:

git fetch
git checkout master
git reset --hard origin/master

上面的git fetch步骤很重要,不应该被忽略,因为它会用当前状态更新你的本地tracking分支origin/master实际的远程 master 分支。如果出于某种原因你想使用(可能过时的)origin/master,那么你可以省略这一步。

更新:

深吸一口气,放松一下,因为这里几乎不可能发生灾难性的事情。您在本地 master 分支上所做的(可能是错误的)所有工作现在应该在名为 AsyncIntegrate 的新本地分支中是安全的。而您的本地 master 只会与遥控器的状态同步,这通常是您想要的位置。

即使您丢失了之前正在处理的提交,您也可以随时从 Reflog 中恢复它。