5

我正在尝试使用已推送到 GitHub 的分支将 6 个提交压缩为单个提交。

我尝试通过命令行执行此操作,但我一直收到 no-op 而不是该分支的提交。

有没有办法通过 GitHub 桌面做到这一点,这可能更有意义?

如果可能,请逐步提供;

我是使用 GitHub 进行协作的新手,我的知识并没有超越 git add、commit 和 push。

4

3 回答 3

4

为了做一个 git squash 遵循这些步骤:

// X is the number of commits you wish to squash, in your case 6
git rebase -i HEAD~X

一旦你压缩你的提交 - 选择sfor squash = 它会将所有提交合并为一个提交。

在此处输入图像描述


如果需要,您还有 --root 标志

尝试:git rebase -i --root

- 根

Rebase all commits reachable from <branch>, instead of limiting them with
an <upstream>.

This allows you to rebase the root commit(s) on a branch.  
When used with --onto, it will skip changes already contained in `<newbase>`   
(instead of `<upstream>`) whereas without --onto it will operate on every 
change. When used together with both --onto and --preserve-merges, all root 
commits will be rewritten to have `<newbase>` as parent instead.`
于 2015-12-28T19:08:00.033 回答
3

有没有办法通过 GitHub 桌面做到这一点,这可能更有意义?

从 2.9 版开始,现在有一种方法可以在 GitHub Desktop 中压缩提交。

这里有两种方便的方法来做到这一点。

  1. 在“历史”选项卡中选择多个提交(使用CtrlShift键),右键单击所选提交之一并选择“Squash 2 commits...”。

在此处输入图像描述

  1. 将一个分支合并到另一个分支时,单击右侧的箭头提交按钮并选择“Squash and merge”。

在此处输入图像描述

于 2021-06-16T15:30:18.723 回答
2

Thoughtbot 的这篇文章可能会帮助您通过命令行完成它。确切地知道自己在做什么可能比依赖 Git 的 GUI 工具要好。从长远来看,它将使您受益。

https://thoughtbot.com/blog/git-interactive-rebase-squash-amend-rewriting-history

于 2015-12-28T19:08:27.870 回答