Git merge --squash 可以保留提交注释吗?

2024-06-24

有没有一种方法可以自动添加压缩后的所有提交注释mybranch执行时提交

git merge --squash mybranch

这样单个提交包含所有提交注释的串联mybranch


我认为这就是“git merge --squash”自动执行的操作!只需使用“git commit --no-edit”进行提交,我想这就是你会得到的。运行“git merge --squash”命令后,我立即看到 .git/SQUASH_MSG 中的所有提交消息。你?

就我个人而言,我会挤入 master,然后将结果强制推回我的主题分支。这样我的最终提交就可以通过拉请求进行代码审查。

现场示例(尝试这些确切的命令,这使用我的演示服务器,并且确实有效):

git clone http://vm.bit-booster.com/bitbucket/scm/bb/rebase-example-2.git
cd rebase-example-2
git checkout branch
git reset --hard origin/master
git merge --squash origin/branch
git commit --no-edit

git show
commit 74656c51212526af49382c985419244737141217
Author: G. Sylvie Davies <[email protected] /cdn-cgi/l/email-protection>
Date:   Mon Dec 26 22:07:50 2016 -0800

    Squashed commit of the following:

    commit 3120cbba4e94e0a81eed2f9ff42e7012cca996bf
    Author: G. Sylvie Davies <[email protected] /cdn-cgi/l/email-protection>
    Date:   Thu Dec 15 18:24:02 2016 -0800

        b2

    commit ccb522334464879b8f39824031c997b57303475d
    Merge: 6b85efb 026bf0c
    Author: G. Sylvie Davies <[email protected] /cdn-cgi/l/email-protection>
    Date:   Thu Dec 15 18:13:35 2016 -0800

        m

    commit 6b85efbddbb74d49a096bfc54fd4df15e261b72f
    Author: G. Sylvie Davies <[email protected] /cdn-cgi/l/email-protection>
    Date:   Thu Dec 15 18:12:51 2016 -0800

        b1

此时,我建议执行“git push --force-with-lease”,将压缩的提交提交到远程主题分支,准备进行代码审查。

注意:我在示例中做了一件奇特的事情。我实际上是在挤入 origin/master,而不是本地 master,我首先执行“git checkoutbranch”和“git reset --hard origin/master”。这让我当地的主人不会因为这次行动而感到不安,这样我在那里可能做的任何事情都不会受到影响。

我使用的是 Git 2.7.4。也许年长的人表现得不同,我不知道。

如果您想在 Web UI 中完成这一切,并且您碰巧使用的是 Atlassian Bitbucket Server(本地版本),您可以安装我的位增强器 https://marketplace.atlassian.com/plugins/com.bit-booster.bb/server/overview付费附加组件,然后点击它在拉取请求上放置的大“南瓜”按钮。它执行完全相同的操作,只不过仅连接非合并提交消息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git merge --squash 可以保留提交注释吗? 的相关文章

  • 我应该从哪里安装 git:xcode-select --install 还是brew install git?

    我应该从哪里安装 git xcode select install or brew install git 你需要做xcode select install无论如何 如果你想做任何开发 然后你可以做 brew install git 它将安
  • 当存储在变量中时,Git 提交消息变得混乱[重复]

    这个问题在这里已经有答案了 我有一个 Git 提交 其中有一个摘要 然后是一些描述 所以当我看到提交消息时git log format B n 1
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 比较 2 次提交

    我没有找到任何关于获取两个文件之间差异的文档 我使用下面的代码使用坚固的方式提交文件 repo Rugged Repository new reponame email protected cdn cgi l email protectio
  • 如何在 gitolite 中安装钩子

    我已阅读全部关于钩子的文档 https github com sitaramc gitolite blob pu doc 2 admin mkd using hooks similar https stackoverflow com que
  • github 网络图查看器的替代品? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我单击 github 上的 forks 按钮时 我想获得一个摘要 这就是我使用网络图查看器获得的结果 但它并不完全理想 我会做什么ide
  • Git core.safecrlf 对具有相同行结尾的文件有不同的行为

    我有带有 VS 项目的 Windows 计算机 并且使用 Visual Studio 和 Cygwin 环境中的工具 包括 Git 有时 编辑后我会在文件中得到不同的行结尾 我想要简单的解决方案来检查文件的行尾一致性 然后再将其发送到存储库
  • 从子文件夹自动部署 Heroku

    我知道你可以从github自动部署到heroku 但我还没有找到一种方法只将子文件夹从github推送到heroku 从命令行我知道可以通过以下方式执行此操作 git subtree push prefix
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在
  • 运行 npm install - 如何配置不使用 SSH(端口被防火墙阻止)

    当我跑步时npm install大多数模块配置正确 然而 至少有人想击中ssh 拉取模块的地址 不幸的是 我的公司有一项政策 不允许内部网络之外的 SSH 连接 我收到的具体错误是 Error while executing npm ERR
  • 推送后删除敏感数据

    因此 我正在开发一个项目并添加一个 gitignore 文件以防止包含一些敏感数据 但它无法按预期工作 现在我已经推送了它 有没有办法从远程存储库中删除它 这样历史记录中就没有它的证据了 您可以在本地恢复更改 git commit amen
  • 通过标记现有提交来触发 Jenkins 管道

    描述 我设置了 Jenkins 2 126 以便在推送新标签时构建管道 具体来说 我想将现有提交标记为master as release 3并让它触发构建 根据多个消息来源 我想要的是可能的 https mohamicorp atlassi
  • 通过防火墙后面的 ssh 访问 git 存储库

    我想在仅允许 http 代理访问的公司防火墙后面访问 克隆 推 拉 私有 通过 ssh git 存储库 我已经编写了一个强大的 Java 守护进程 程序 基于 JSCh 类库 它允许我利用本地和远程端口转发 我希望利用它 但当我尝试设想如何
  • 如何 git reset --hard 子目录

    UPDATE 在 Git 2 23 2019 年 8 月 中 有一个新命令git restore这样做的 请参阅接受的答案 https stackoverflow com a 15404733 946850 UPDATE 从 Git 1 8
  • 为什么 git 挂起 - 在命令后必须按 Enter 两次?

    编辑 摘要 在 Git 中输入的每个命令都会生成一个悬挂光标 如果在按 Enter 之前输入任何内容 则该光标会显示 错误输入 没有命令产生任何结果 我尝试全新安装但没有结果 I am 完全地Git 新手 不知道我在做什么 我用的是Mac
  • 如何撤消 git pull?

    由于远程源上不需要的提交 我想撤消 git pull 但我不知道必须重置回哪个版本 我怎样才能回到在远程源上执行 git pull 之前的状态 或者使其比其他答案更明确 git pull whoops git reset keep HEAD
  • 将文件恢复到以前的版本后 git diff 显示没有差异?

    After 将文件恢复到以前的版本 https stackoverflow com questions 215718 reset or revert a specific file to a specific revision using
  • git rebase -i --retain-empty-commits

    默认情况下 当您使用git rebase i它注释掉了空提交 我必须取消注释它们 它们对我有帮助 rebase 命令是否有一个选项可以防止这种我不想保留它们的不必要的假设 好吧 这比预期的要容易 git rebase i keep empt
  • 具有共享代码库的多个产品的版本控制和发布管理

    我目前正在尝试弄清楚 在这样一种情况下 如何使用 git flow 进行发布管理 我有一个 git 存储库 其中包含两个解决方案中的大约 15 个项目以及数据库脚本 每个解决方案基本上都包含一个将生成可执行文件的项目和 10 多个包含两个解

随机推荐