首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将git分支更改为主分支

无法将git分支更改为主分支
EN

Stack Overflow用户
提问于 2021-07-10 18:39:08
回答 2查看 118关注 0票数 1
代码语言:javascript
复制
$ git reflog

/e/eli/flicki ((33bff44...))

33bff44 (HEAD) HEAD@{0}: reset: moving to 33bff443646f2097e07e1067051468990ee16487
b2ed2b7 (origin/main) HEAD@{1}: reset: moving to b2ed2b7277f5e8d6e61bd585f96d763e032e68a9
33bff44 (HEAD) HEAD@{2}: reset: moving to 33bff443646f2097e07e1067051468990ee16487
7a18198 HEAD@{3}: reset: moving to 7a181984a0d6ec9db281d8d1f8e61b91767f5b55
33bff44 (HEAD) HEAD@{4}: commit: new feature
b2ed2b7 (origin/main) HEAD@{5}: rebase (start): checkout b2ed2b7277f5e8d6e61bd585f96d763e032e68a9
f4ca5b4 (main) HEAD@{6}: commit: added analytic page and timestamp table and filter message functionality

$ git branch
* (no branch)
  main

我已经直接向GitHub文件编辑器提交了最后一次提交,10天后我再次提交,但是

在我的本地计算机上,在推送repo之后抛出一个错误,然后我使用了git pull rebase origin main,然后使用了rm -rf .git/rebase-merge命令,之后我迷路了,卡住了,无法切换到main分支。请引导我转到flicki分支,如上面所示/e/eli/ main ((33bff44...))被卡住了

[由@torek编辑:具体地说,git checkout main产生

代码语言:javascript
复制
error: cannot stat 'lib/flicki_web/templates/analytic': Permission denied

see comment。]

EN

回答 2

Stack Overflow用户

发布于 2021-07-10 19:59:12

如果我正确地理解了,无论是在提交中还是在origin上,都有您想要的一切,那么我会这样做:

首先获取git,这样您就拥有了github上所有内容的本地副本

代码语言:javascript
复制
git fetch

如果你有gitk,你可以看到github和本地的所有分支的图片,如下所示

代码语言:javascript
复制
gitk --all &

但如果我理解正确的话,

代码语言:javascript
复制
git reset --hard # get rid of anything local that is going on
git checkout main # go back to main branch
git reset --hard 33bff44 # move your current files and branch to the new feature

(最后一个命令可能不是必需的,但是因为我们知道我们想要哪个提交,所以它不会有什么坏处。但是如果你愿意,你可以在像这样做git rev-parse HEAD之前找出是否有必要这样做。这将告诉您main是否已经在提交,或者您是否以某种方式更改了它。)

现在我认为你应该在你开始的地方。gitk应该显示如下内容

代码语言:javascript
复制
common-base --- commit you made on github (origin/main)
            \-- commit you made locally (main)

然后我就不会使用git pull了。我只是将我的本地分支转换为一个包含您在github上的所有内容的分支,再加上您在本地拥有的提交,如下所示:

代码语言:javascript
复制
git rebase origin/main

现在,如果因为没有冲突而有效,那么您将比github提前一个提交,并且您可以像以前那样推动您的更改

票数 0
EN

Stack Overflow用户

发布于 2021-07-11 04:36:40

您似乎有几个问题正在发生,并且考虑到问题本身中的问题,很难确定修复这些问题的确切顺序。这些问题包括:

  • permission denied错误:这意味着您可能以超级用户身份运行了一些操作(例如,sudo command )。您可能需要将这些文件的所有权更改回您自己,以便您可以处理/使用它们。但我们不能确切地看到问题是什么,所以我也不能确切地说出如何解决它。

  • The rm -rf .git/rebase-merge:这让Git“忘记”你正处于一个不完整的rebase过程中。你过去和现在都在这个不完整的改变中,但现在不可能让Git正常地让你退出,因为你破坏了Git这样做所需的信息。

我认为解决这个问题最有希望的方法是首先解决权限问题。然后,您将能够使用git checkout main,这将使您或多或少地摆脱不完整的rebase,就像您使用了git rebase --abort一样。然后,您可以重新开始。

或者,您可以完全放弃此克隆(以及您在此克隆中所做的任何尚未在GitHub上执行的提交)。当然,这不是一个很好的解决方案。如果您可以修复权限问题,则Alex028502's answer可能是更好的继续操作方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68326923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档