【发布时间】:2017-12-26 19:50:18
【问题描述】:
我正在通过 Xcode 使用 git。几天前,我在我的项目中添加了一个远程存储库。当时我没有注意到它,但由于某种原因,Xcode 取消选择主分支作为我当前的分支,并且在过去的两天里,我所有的提交都是 (...)
我现在如何在不丢失进度的情况下选择 master 分支作为我的当前分支?
我尝试从最后一次主提交分支,但它仍然让我无处可去,因为无法保存最近的提交。
【问题讨论】:
-
首先备份整个项目文件夹(里面会有一个
.git文件夹,所以它也会备份你的git)。然后试试下面的:git checkout -b Temporary,@ 987654323@ 和git push -u origin Temporary。这将创建一个临时分支,将所有内容提交给它,然后将跟踪推送到远程临时分支。现在您可以签出 master 并与 Temporary 合并。如果一切都失败了,你有你的备份项目文件夹..再做一个备份,然后尝试别的.. -
我不使用 Xcode(我碰过它一两次,但还不够坚持使用它:-))但我怀疑你处于“分离 HEAD”模式。在命令行中,运行
git branch列出您的分支,这将列出 current 分支,旁边有一个*。如果星号线显示* (HEAD detached ...),则表示您有这种分离的HEAD 模式。 -
如果你一直在提交,那么它们就被提交了。你不会因为切换到另一个分支而失去工作。这就是 SCM 的全部意义所在。不过,您可能必须在命令行中做一些工作。
-
谢谢@Brandon。当我通过终端创建一个临时分支时,我以前的所有提交都神奇地出现在那里,之后我只是将新分支合并到 master 中。将来我会在开始通过 Xcode 解决我的版本控制问题之前三思而后行 ^^
-
有一些 Git GUI 比 Xcode 做得更好。有些是免费的。我自己使用 GitUp,它是开源的。