gpt4 book ai didi

git - 在 GitHub 中 rebase 后由 x 提交在后面由 y 提交

转载 作者:太空狗 更新时间:2023-10-29 13:35:45 26 4
gpt4 key购买 nike

我最近通过以下代码将最后 y 个提交 merge 为一个

git rebase -i HEAD~y--> 然后我压缩所有 y 提交(通过编辑文件)--> 然后我使用 git reset --soft HEAD~y 重置了 Head--> 然后我使用 git commit

提交了所有内容

现在我的 git hub 显示我领先 1 次提交,落后 y 次提交(在 github 窗口中)。

现在 git pull -> 从 master 获取所有当前提交并再次包含这个新的 merge 提交。现在我最终得到了 y+1 次提交。任何人都可以解释我如何推送我最近的 merge 提交。

我是 GitHub 的业余爱好者。如果有人可以分享 GitHub 的基本架构,那也会很有帮助。我能找到的只是如何创建存储库等。

谢谢你的时间

最佳答案

您使用 git rebase 命令将“y”提交重新设置为 1。所以现在你已经将所有这些提交创建到 1 中。然后你撤消它并使用 git reset --soft HEAD~y 撤消之前的下一个 y 提交这一步需要你的提交和下一个 y-1 提交和从本地分支的历史记录中删除它们,但保留补丁。然后您提交这些更改。

我假设您 rebased 的第一个 y 提交没有被推送到 Github,但是第二个 y 被推送了。所以现在,当您 pull 时,Git 会看到您已经在本地存储库中创建了一个提交(巨大的 merge 球),并且存在于 Github 中的 y 个提交是您没有的,因为您将它们重置并 merge 为一个提交。

rebase 后无需重置分支,这就是导致问题的原因。要解决问题,您需要做的是:

git reset HEAD^
git stash -u
git pull
git stash pop

这样做的目的是撤消您所做的所有重大更改的一次提交。将其放在一边,以便您可以引入 Github 中缺少的更改。从 Github 中提取您落后的提交,然后重新应用我们搁置的更改。我相信您重复的更改将不再显示在 diff 中,如果您现在提交更改,您会发现您只按预期领先 1 次提交。

关于git - 在 GitHub 中 rebase 后由 x 提交在后面由 y 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com