66得票2回答
撤销在rebase中进行的git rerere解决方案

好吧,我真的很喜欢git rerere命令,尽管除了让它自动记录我的冲突并为我解决冲突之外,我并没有真正多用过它。不过,在对一个非常陈旧的特性分支进行最新版本发布的变基时,我确实搞砸了其中一个冲突解决方案。feature -> a - b - c - d release -> e...

288得票16回答
在Git中根提交之前插入一个提交?

我之前询问过关于如何在Git仓库中合并前两次提交的问题。解决方案虽然有趣,但对于在项目开发过程中需要多次重复该过程的情况来说还是有一些麻烦。 因此,我宁愿只经历一次痛苦,然后永远使用标准的交互式变基(rebase)。 所以,我的想法是创建一个空的初始提交,只为作为第一个提交而存在。没有代...

67得票4回答
git rebase --editor=/something/other/than/vim?(用于更轻松地压缩)

我很高兴地将vim作为我的默认提交编辑器,不希望更改它。然而,当涉及到变基时,我发现自己需要将几十个提交压缩成一个,并且使用Textwrangler这样的交互式编辑器会更容易(在除了最上面的提交之外的所有提交中用“squash”替换“pick”)。 有没有办法为一次性变基命令指定替代编辑器?...

7得票2回答
将分支中的Git rebase/master更改合并到主分支中

两周前,我创建了一个新的分支,我们称其为exp。在此期间,exp和master都有几个提交。这段时间里,exp没有更新来自master的更改。 现在,我想将exp中的所有更改合并到master中,而不会丢失我的整个历史记录(即我不想只在master中有一个提交包含所有更改,而是希望exp中的...

9得票3回答
将整个开发分支基于新的主分支进行变基

我正在处理一个代码库,理论上应该遵循Gitflow工作流程(参见Vincent Driessen的A successful git branching model)。然而,代码库的初始提交是在develop分支上进行的,看不到master分支。现在即将发布,我需要创建一个反映项目生产就绪状态的...

27得票4回答
使用git-filter-branch命令提取多个目录

我有一个大代码仓库,目前包含多个顶级子文件夹中的项目,比如 /a、/b、/c 和 /d。 现在我想把这个仓库分成两个不同的仓库:一个包含 /a 和 /b,另一个包含 /c 和 /d。 我知道可以使用 git filter-branch --subdirectory-filter 提取单个目...

16得票2回答
如何重新设置基础并保持提交的时间顺序?

我想在主分支上对一个分支进行变基,但要以这样一种方式使得所有提交以时间顺序在git日志中显示。是否可以在不使用git rebase --interactive并手动重新排列提交的情况下实现? 背景:我正在使用git跟踪服务器群的puppet配置。主分支始终处于已知的良好状态,因此所有现有服务...

52得票4回答
如何在同一Git仓库中同步两个分支?

我常常遇到一个常见的工作流障碍: master 是我们的“稳定”分支$ git status # On branch master nothing to commit (working directory clean) 在分支上创建一个模块$ git checkout -b foo $ ec...

219得票7回答
为什么当我只是压缩提交时,git-rebase会给我产生合并冲突?

我们有一个包含400多个提交的Git仓库,前几十个提交是试错的结果。我们想通过将许多提交压缩成一个提交来清理这些提交。自然地,git-rebase似乎是正确的方法。我的问题是它最终会产生合并冲突,而这些冲突不容易解决。我不明白为什么会有任何冲突,因为我只是压缩提交(不删除或重新排列)。很可能,...

231得票9回答
如何将Git仓库的前两个提交合并?

假设您有一个包含三个提交 A,B 和 C 的历史记录:A-B-C 我想将两个提交记录 A 和 B 合并成一个提交记录 AB:AB-C 我尝试过git rebase -i A 这将打开我的编辑器,并显示以下内容:pick e97a17b B pick asd314f C 我将这个更改为squas...