问题标签 [git-squash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
292 浏览

github - 拉取请求的壁球合并后,github提交堆积

  1. 我有另一个 repo @github 的分支。
  2. 做了一些代码并向上游发出拉取请求
  3. 上游 master 与squash选项合并
  4. 现在下一个拉取请求包括新代码和旧提交。所以他们越来越多。

我能用它做什么?

  • 回购在代码方面完全同步
  • 顶部仍然是 github 徽章显示我的 fork 是 xx 提交在上游之前
  • 我试图将上游合并到我的仓库(没有效果,因为它们是同步的)
  • 我不确定 rebase 是否有帮助,但有我的提交和其他人的提交。所以那里一团糟,我不确定要重新设置什么。
0 投票
1 回答
350 浏览

git - Git script to rebase and squash temporary commits

Of the few times I have squashed Git commits, it took some manual work to pick the previous commits I wanted to squash.

Is there some way to so this automatically - my goal is to squash all previous commits that have not already been pushed to a particular remote branch.

To elaborate, say I have 1 local branch called "dev" and 2 remotes, public and private. I commit and push all I want to the private remote, to a branch called "dev", let's call that private/dev. But on the public remote I want to keep things clean and tidy, and to keep one standard branch called "master", let's call that public/master. So like I said, for all the commits that have not already made it to the public remote master branch, I want to squash those into one big commit, and the push to public/master

How can I achieve that? Seems complicated.

0 投票
1 回答
2067 浏览

git - Git rebase 交互错误

我想将我的分支(让我们称之为my_branch)合并到 master。它有 1 个文件显示为我在 github.com 上的拉取请求中的合并冲突。在变基之前,我想压缩我的提交(11 个提交)。所以我做了这样的事情:

这打开了一个包含我所有提交的 vim 编辑器 - 我保留了第一个,pick并将其余的更改为s (squash)

当我保存并退出时出现错误 -error: could not apply e7ce468... 'commit1 message'

谁能向我解释问题是什么?我知道我不能在不压缩的情况下重新设置基准,因为每个提交都需要被解决..

0 投票
1 回答
4244 浏览

git - 如何重置变基壁球?

如何重置 git squash?

我正在使用 PhpStorm。我从过去 14 天的工作中压缩了提交。提交“HEAD DEV Refactor gulp file”内部有 50 多个压缩提交。

我如何再次显示/取消压缩它们?

在此处输入图像描述

0 投票
1 回答
2513 浏览

git - Git:如何将现有的`merge`转换为`merge --squash`?

我执行了多次merge提交,但它们应该是merge --squash。解决冲突花了一天多的时间,所以我无法手动重做合并。

有没有办法将其转换mergemerge --squash

0 投票
1 回答
325 浏览

git - Git从标签合并和覆盖

我试图在 git 上保留 2 个独立的分支,我工作的“Dev”和“Master”,它基本上是一个干净的分支,我在其中推送我的项目的干净版本。

这里的问题是,当我合并时,我不希望以前提交的任何历史记录。我,有点,想出了如何做到这一点,它在第一次合并时工作得很好,但现在(在我的第二次合并中)我遇到了很多合并冲突的麻烦。

这是我以前做的:

git结帐开发

git tag -a 1.0 -m "版本 1.0"

git push origin --tags

git结账大师

git 合并 --squash 1.0

git 提交“消息”

git push 起源大师

因此,当主分支完全干净时,它第一次起作用,但现在,我遇到了很多合并冲突。有没有办法强制将标签 1.0 上的所有更改合并到 master ?或者更好的方法来完成这一切?

0 投票
3 回答
17529 浏览

git - Gitflow:从发布分支合并到主分支时,我应该压缩提交吗?

我要将我的发布分支合并到master,我想知道在合并到master时是否应该将提交从开发压缩到单个合并提交。

关于 git flow 的一般文档包含来自 Atlassian 页面中的此类数据:

在此处输入图像描述

在这些图中,只有单个提交出现在 master 上,而不是所有为开发而进行的提交。

实际上,我喜欢拥有一个仅发布提交的主分支的想法。

合并到master时我应该保留所有关于develop的提交吗?还是在跟随 Gitflow 时合并到 master 之前压缩提交?

链接到源文章:Gitflow Workflow - Atlassian

0 投票
2 回答
88 浏览

git - 如果合并失败,是否需要 git reset --hard?

我有以下 bash 脚本:

我有两个问题:

  1. 如果合并失败,是否需要执行 git reset 才能恢复到合并开始之前的状态?
  2. 假设 1 的答案是“是”,那么上面的脚本是否正确,这样如果 node-c.sh 脚本以非零代码退出,则 git reset --hard 将被调用并且绝对会以 code = 退出1?

我在想,在运行 git merge 时,无论如何都会更新索引,因此 git reset --hard 始终是正确的做法。

顺便说一句,我看到似乎是一些糟糕的 Git 错误,其中合并不起作用并生成 .js 文件,这些文件会被破坏,而且通常甚至无法通过使用“$ node -c”进行编译。不确定是否有人以前见过这个,但我已经向 Git 提交了错误报告。

0 投票
1 回答
521 浏览

git - git rebase似乎没有压缩提交

我有两个分支。branch1有最新的更改,另一个 ( branch2) 包含遥控器上的最新更改。

所以我要做的是我得到最近的共享提交,如下所示:

然后我运行 rebase

我遇到的问题是,这似乎并没有压缩 branch1 上的提交。它应该是压缩提交并且我的概要是错误的吗?

当您使用带交互选项的 rebase 时,您指定是否压缩提交。

我想知道是否可能需要使用 rebase 命令这样的选项

或者可能

0 投票
1 回答
1827 浏览

git - 将 GitHub“压缩并合并”后的分支重新设置为主分支

假设我已经开发了一项功能,branch1并使用 GitHub 拉取请求将其发送给代码审查。在审核期间,我在branch2.

我的审稿人喜欢我的工作!无需更改。branch1我合并了使用 GitHub 的Squash 和合并功能的拉取请求。

运行并删除后git pullmasterbranch1遇到了这种情况:

要为 发送一个看起来干净的 PR branch2,我想让我的提交树看起来像这样:

S(由“压缩和合并”为 生成的提交)处的代码branch1与 相同C,因为它只是A --> B --> C.

实现此目的的一种方法是在以下位置运行这样的序列branch2

但是以这种方式列出所有提交变得乏味,这真的感觉像是一个变基。当然,因为 commits并且需要消失,git rebase master所以不会工作。ABC

将分支从其祖先提交之一的压缩版本中变基的最佳方法是什么?