【问题标题】:How to fix "Your branch is ahead of 'origin/master' by 1 commit."?如何修复“您的分支比 'origin/master' 领先 1 次提交。”?
【发布时间】:2022-01-04 11:34:49
【问题描述】:

我在我的计算机上(来自 github)有一个 fork 存储库的本地结帐。所以在github上我创建了一个fork,并检查了它。

现在我希望本地结帐与原始 github 存储库(我从中创建分叉的那个)相同。我将该原始存储库添加到我的本地存储库(名称为“orig”)并执行了以下操作:

git pull orig master

但是,git status 显示给我

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean

git diffgit diff origin/master 也没有显示任何内容。

有没有办法使本地结帐等于原始主分支中的结帐(不删除本地 repo、github 分叉、重新分叉、重新签出...)?

我不在乎是否有任何未提交的更改或任何东西。我希望本地结帐等于原始回购...

【问题讨论】:

标签: git github


【解决方案1】:

您可以将本地分支重置为原始分支,然后推送到您的 fork

git checkout master
git reset --hard origin/master
git push --force origin master

您的本地 repo 和 fork master 分支将与原始 repo 相同。

如果需要清理:git clean -f -d

【讨论】:

  • 在执行上述命令之前是否需要保存本地更改?
  • @DeepakYadav 是的:建议至少使用git stash,甚至是git add + git commit。在reset --hard 之后,您仍然可以通过从 reflog 中挑选该提交或通过 pop stash git-scm.com/docs/git-stash#Documentation/… 来取回您的更改。
【解决方案2】:

使用下面的命令:

git reset --hard HEAD

【讨论】:

    【解决方案3】:

    我已经多次遇到同样的问题,以下是我为自己写下的解决方案。我不知道所有细节,但我知道它让我摆脱了麻烦:)。

    回滚提交。 (在每一步之间运行“git status”)

    • 例如“您的分支比 'origin/dev' 领先 2 次提交。”
    1. git 重置 HEAD^:
    • 这会一次删除一个已提交的文件(我认为)
    • 会有一堆(红色)暂存/未跟踪文件。不要惊慌。
    1. “您的分支和 'origin/dev' 发生了分歧,分别有 1 次和 5 次不同的提交。”
    • 重复步骤 1。直到 git status “您的分支落后于 'origin/dev' 5 次提交”
    • 现在我们要删除所有这些更改,以便稍后将源拉回。
    1. git 恢复 *
    • 删除所有分阶段的更改
    • 现在可能只有一些未跟踪的文件。手动去文件夹中删除它们。
    1. git pull origin dev.
    • 这应该是从 origin 提取的最新开发。

    【讨论】:

      猜你喜欢
      • 2012-04-27
      • 2011-01-21
      • 2013-04-23
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 2012-06-17
      相关资源
      最近更新 更多