问题标签 [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.
git - Git - 壁球后恢复中间提交
我已经将几个提交压缩成一个提交。squash 之前的提交之一包括调试打印,而后来与它一起压缩的提交删除了这些打印。有没有办法恢复它们?
git - 将提交压缩到功能分支上,现在无法干净合并回主控
好的,所以我通过压缩一堆提交遇到了一些麻烦,并且想知道是否有办法从中恢复。这是发生的事情,
我们从这里开始:
两个分支都完成了工作:
合并从master
to的更改mybranch
(不幸的是,这里被压扁了,所以 B、C、G 和 H 被合并到一个单一的提交 H' on 中mybranch
):
两个分支都完成了工作:
现在我想合并从mybranch
to的更改,master
并且遇到大量冲突,说两者都修改了相同的文件。
关于我现在可以尝试做什么以从mybranch
to进行干净合并的任何建议master
?
更新 1
这是输出git log
git - 如何在不陷入冲突的情况下重写整个 git 历史(压缩和改写)?
我正在处理大约 5000 次提交(包括合并)的代码库。我开始交互式 rebase 以压缩类似的提交并重新编写弱提交消息。在此之前我删除了这篇文章之后的一些大文件。
然而,我从第 7 次提交开始就出现了冲突,并且每次提交的冲突都会变得更大。有没有办法只进行不会引发任何冲突更改的操作?
我使用命令:
git - 我们可以将最新提交压缩到特定的先前提交吗?
例如,如果我们想将提交压缩HEAD
到 commit HEAD~4
,我们有一个选项,我们可以通过
- 将提交重置
HEAD
为HEAD~3
- 构建一个与我们的旧 HEAD 具有相同更改的临时提交(例如,
temp
) - 隐藏其他分阶段/非分阶段的更改
temp
与我们的旧人挤在一起HEAD~4
- 弹出我们隐藏的更改
- 再次构建提交作为较旧的提交(
HEAD~3
到HEAD
)。
还有其他更快更方便的方法吗?
git - git merge --squash (branch) 给出错误
目前我有一个1-user-model
分支。
然后,我从这里签出并创建了一个1-user-model-squash
分支。
然后,当我尝试运行时git merge --squash 1-user-model
,出现此错误。
致命的:您不能将 --squash 与 --no-ff 结合使用。
我还尝试签出master
然后运行相同的命令,但仍然出现该错误。
有什么线索吗?
git - 在 GitHub 中将 PR 合并+压缩到 master 后,如何同步您的 git dev 分支?
所以 GitHub有能力为 PR 合并 + 压缩提交。
dev
我们从->遵循 PR'ing 代码的过程master
。
以前,我一直只是“合并” PR,但这会生成一个新的提交,上面写着:“ Merge Pull Request #1 from foo/bar
”。:( 呜呜……
所以我想我可以试试Squash Commits
GH的新东西。这创建了一个新的提交,我之前的所有提交都被压缩了。好的,到目前为止一切顺利。
然后我回到我的dev
分支(在我的开发人员机器上).. 拉下upstream/master
(这是 PR 和 squash-merge 发生的地方))现在它向我的本地历史添加了另一个提交!它没有去“哦..哇。你太离谱了..让我们同步”。它只是做了一个合并。
因此,Squash+Merge 按钮压缩了 4 个提交并将其替换为 1 ...upstream/master
我的 localhost 机器上的拉动现在我的 4 个提交仍然存在,并且 PR 所做的 Squashed-commit 以及一个新的提交,即“ Merge branch master .. blah ... noise ..spam
”提交:(: (:(
在合并壁球发生后我应该做一个特殊的技巧/工作流程..以确保我的dev
分支正确同步?就像..每个人都只是删除他们的本地主机dev
分支,然后再拉回upstream/master
他们的本地主机并进入(新创建的)dev
分支?
请记住:这里的目标是避免那些糟糕的“合并拉取请求 #2..”合并气泡消息。
还是人们暂时只是通过 CLI 执行此操作,直到 GitHub 学习如何执行此操作:(
git - 如何在推送后清理 git 历史记录删除某些提交?
我正在尝试做的事情:
我完成了一个功能。
然后我意识到我错过了一些东西。
现在我的历史看起来像这样:
我希望它看起来像这样:
将所有missed something
提交合并到feature A complete
提交中。
我知道git rebase -i HEAD~4
这是正确的方法,但它实际上并没有删除错误的提交来清理历史。
我注意到在其他一些文章中有一个git commit --fixup
命令和一个git rebase -i --autosquash
,但我没有让它正常工作。我敢肯定这非常容易,我今天刚搞定。
git - 找到做rebase的起点 -i
我在一个分支(当然是 master 的分支)工作,并且我有一系列提交。
我有兴趣确切地找出哪个提交是分支开始的地方并且是 master 的一部分。
为什么我需要这个?
我想用交互式 rebase 压缩所有提交,我想知道是否有一种简单的方法可以确定要传递给 rebase 命令的内容,而不是手动计算要传递的提交HEAD~52
git - Git squash 在分支中间提交
我想在分支中间将多个提交压缩在一起,而不需要修改之前和之后的提交。
我有 :
我想把它压缩成
H
相当于哪里B -- C -- D
。我希望能够指定H
. A
是已推送的最后一次提交,因此之后的所有提交都可以重写而不会弄乱服务器。这个想法是在我快进之前清理历史master
。
我怎样才能做到这一点 ?
PS:请注意,在我的情况下,我实际上有超过 3 个提交在中间进行压缩,但如果我可以用 3 个来完成,我应该可以用更多来完成。
PPS:另外,如果可能的话,我更喜欢一个解决方案E
,F
并且G
保持不变(主要是关于提交日期)。
git - GIT - 无法压缩提交:致命:需要一个修订版
我正在尝试用 git 压缩我的最后 2 次提交。在此示例中,我从另一个名为 develop 的分支创建了一个分支,并且我有 3 个新提交,这是 git log :
所以我想将提交 #3 和提交 #2 压缩为一个提交,我尝试:
我得到这个错误:
如果我做 :
工作正常,但我不想压缩所有 3 个提交,我只想要最新的 2 个。我已经读过当你没有足够的提交时会出现这个错误,但我肯定有 ¯_(ツ)_/¯