如何将 "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 中恢复它。
我在设计我的应用程序时意识到,我正在做的是一个单独的分支。我将我对本地存储库的更改提交到 "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 中恢复它。