问题标签 [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.
github - 拉取请求的壁球合并后,github提交堆积
- 我有另一个 repo @github 的分支。
- 做了一些代码并向上游发出拉取请求
- 上游 master 与squash选项合并
- 现在下一个拉取请求包括新代码和旧提交。所以他们越来越多。
我能用它做什么?
- 回购在代码方面完全同步
- 顶部仍然是 github 徽章显示我的 fork 是 xx 提交在上游之前
- 我试图将上游合并到我的仓库(没有效果,因为它们是同步的)
- 我不确定 rebase 是否有帮助,但有我的提交和其他人的提交。所以那里一团糟,我不确定要重新设置什么。
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.
git - Git rebase 交互错误
我想将我的分支(让我们称之为my_branch
)合并到 master。它有 1 个文件显示为我在 github.com 上的拉取请求中的合并冲突。在变基之前,我想压缩我的提交(11 个提交)。所以我做了这样的事情:
这打开了一个包含我所有提交的 vim 编辑器 - 我保留了第一个,pick
并将其余的更改为s (squash)
当我保存并退出时出现错误 -error: could not apply e7ce468... 'commit1 message'
谁能向我解释问题是什么?我知道我不能在不压缩的情况下重新设置基准,因为每个提交都需要被解决..
git - Git:如何将现有的`merge`转换为`merge --squash`?
我执行了多次merge
提交,但它们应该是merge --squash
。解决冲突花了一天多的时间,所以我无法手动重做合并。
有没有办法将其转换merge
为merge --squash
?
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 ?或者更好的方法来完成这一切?
git - Gitflow:从发布分支合并到主分支时,我应该压缩提交吗?
我要将我的发布分支合并到master,我想知道在合并到master时是否应该将提交从开发压缩到单个合并提交。
关于 git flow 的一般文档包含来自 Atlassian 页面中的此类数据:
在这些图中,只有单个提交出现在 master 上,而不是所有为开发而进行的提交。
实际上,我喜欢拥有一个仅发布提交的主分支的想法。
合并到master时我应该保留所有关于develop的提交吗?还是在跟随 Gitflow 时合并到 master 之前压缩提交?
链接到源文章:Gitflow Workflow - Atlassian
git - 如果合并失败,是否需要 git reset --hard?
我有以下 bash 脚本:
我有两个问题:
- 如果合并失败,是否需要执行 git reset 才能恢复到合并开始之前的状态?
- 假设 1 的答案是“是”,那么上面的脚本是否正确,这样如果 node-c.sh 脚本以非零代码退出,则 git reset --hard 将被调用并且绝对会以 code = 退出1?
我在想,在运行 git merge 时,无论如何都会更新索引,因此 git reset --hard 始终是正确的做法。
顺便说一句,我看到似乎是一些糟糕的 Git 错误,其中合并不起作用并生成 .js 文件,这些文件会被破坏,而且通常甚至无法通过使用“$ node -c”进行编译。不确定是否有人以前见过这个,但我已经向 Git 提交了错误报告。
git - git rebase似乎没有压缩提交
我有两个分支。branch1
有最新的更改,另一个 ( branch2
) 包含遥控器上的最新更改。
所以我要做的是我得到最近的共享提交,如下所示:
然后我运行 rebase
我遇到的问题是,这似乎并没有压缩 branch1 上的提交。它应该是压缩提交并且我的概要是错误的吗?
当您使用带交互选项的 rebase 时,您指定是否压缩提交。
我想知道是否可能需要使用 rebase 命令这样的选项
或者可能
git - 将 GitHub“压缩并合并”后的分支重新设置为主分支
假设我已经开发了一项功能,branch1
并使用 GitHub 拉取请求将其发送给代码审查。在审核期间,我在branch2
.
我的审稿人喜欢我的工作!无需更改。branch1
我合并了使用 GitHub 的Squash 和合并功能的拉取请求。
运行并删除后git pull
,master
我branch1
遇到了这种情况:
要为 发送一个看起来干净的 PR branch2
,我想让我的提交树看起来像这样:
S
(由“压缩和合并”为 生成的提交)处的代码branch1
与 相同C
,因为它只是A --> B --> C
.
实现此目的的一种方法是在以下位置运行这样的序列branch2
:
但是以这种方式列出所有提交变得乏味,这真的感觉像是一个变基。当然,因为 commits并且需要消失,git rebase master
所以不会工作。A
B
C
将分支从其祖先提交之一的压缩版本中变基的最佳方法是什么?