rebase相关内容

重新定位一个分支,包括它的所有子节点

我有以下 Git 存储库拓扑: A-B-F(主)\D(特征-a)\/C(特征)\E(特征-b) 通过重新定位 feature 分支,我希望重新定位整个子树(包括子分支): $ git rebase 功能大师A-B-F(主)\D(特征-a)\/C(特征)\E(特征-b) 然而,这是实际结果: C'(功能)/A-B-F(主)\D(特征-a)\/C\E(特征-b) 我知道我可以通过执行以下 ..
发布时间:2021-12-06 09:48:19 其他开发

从 git/GitHub 的历史记录中删除文件夹及其内容

我正在我的 GitHub 帐户上处理一个存储库,这是我偶然发现的一个问题. 带有安装了几个 npm 包的文件夹的 Node.js 项目 软件包位于 node_modules 文件夹中 将该文件夹添加到 git 存储库并将代码推送到 github(当时没有考虑 npm 部分) 意识到您实际上并不需要将该文件夹作为代码的一部分 删除那个文件夹,推送它 那时,整个 git 存储库的大 ..
发布时间:2021-12-06 09:41:45 其他开发

git rebase,跟踪“本地"和“远程"

在执行 git rebase 时,我经常很难弄清楚在解决冲突时“本地"和“远程"发生了什么.有时我的印象是他们从一次提交到下一次交换双方. 这可能(肯定)是因为我还没有正确理解. rebase 时,谁是“本地",谁是“远程"? (我使用 P4Merge 来解决冲突) 解决方案 TL;DR; 总结(作为 Benubird 评论),当: git checkout Ag ..
发布时间:2021-12-06 09:38:57 其他开发

合并 Git 存储库的前两次提交?

假设您有一个包含三个提交 A、B 和 C 的历史记录: A-B-C 我想将两个提交 A 和 B 合并为一个提交 AB: AB-C 我试过了 git rebase -i A 它打开了我的编辑器,内容如下: pick e97a17b B选择 asd314f C 我把它改成 南瓜 e97a17b B选择 asd314f C 然后 Git 1.6.0.4 说: 不能在没有先前提交的情 ..
发布时间:2021-12-06 09:32:19 其他开发

在有人将 rebase 或重置推送到已发布的分支后,如何恢复/重新同步?

我们都听说过永远不应该对已发布的作品进行 rebase,这很危险,等等.但是,我还没有看到任何关于如何在 rebase 发布的情况下处理这种情况的食谱. 现在,请注意,这只有在存储库仅由已知(最好是一小部分)人克隆时才真正可行,以便推动 rebase 或重置的人可以通知其他人他们需要注意下次他们取(!). 如果您在 foo 上没有本地提交并且它被重新设置,我所看到的一个明显的解决方案将 ..
发布时间:2021-12-06 09:30:12 其他开发

使用 Git 更改项目的第一次提交?

我想在我的项目的第一次提交中更改某些内容,而不会丢失所有后续提交.有没有办法做到这一点? 我不小心在源代码的评论中列出了我的原始电子邮件,我想更改它,因为我收到了 GitHub 索引机器人的垃圾邮件. 解决方案 正如 ecdpalma 所提到的 下面,git 1.7.12+(2012 年 8 月)为 git rebase 增强了选项 --root: "git rebase [- ..
发布时间:2021-12-06 09:22:45 其他开发

“git merge"和“git rebase"有什么区别?

git merge 和 git rebase 有什么区别? 解决方案 假设最初有 3 个 commit,A,B,C: 然后开发人员 Dan 创建了 commit D,开发人员 Ed 创建了 commit E: 显然,这个冲突应该以某种方式解决.为此,有两种方法: 合并: 提交 D 和 E 仍然在这里,但我们创建了合并提交 M 继承了 D 的变化code> 和 E.然 ..
发布时间:2021-12-06 09:22:02 其他开发

在 Git 中的根提交之前插入提交?

我之前问过如何压缩前两次提交 在 git 存储库中. 虽然这些解决方案相当有趣并且不像 git 中的其他一些东西那样令人费解,但如果您需要在项目的开发过程中多次重复该过程,它们仍然是众所周知的伤害. 所以,我宁愿只经历一次痛苦,然后就可以永远使用标准的交互式 rebase. 然后,我想要做的是有一个空的初始提交,该提交仅存在于成为第一个的目的.没有代码,什么都没有.只是占用空间, ..
发布时间:2021-12-06 09:20:30 其他开发

如何将所有 git 提交压缩为一个?

如何将整个存储库压缩到第一次提交? 我可以重新调整到第一次提交,但这会给我留下 2 次提交.有没有办法在第一个之前引用提交? 解决方案 也许最简单的方法是创建一个具有当前工作副本状态的新存储库.如果您想保留所有提交消息,您可以先执行 git log >original.log 然后在新存储库中为您的初始提交消息编辑它: rm -rf .git混帐初始化git 添加.提交 或 g ..
发布时间:2021-12-06 09:14:05 其他开发

合并 --squash 和变基有什么区别?

我是 git 的新手,我试图了解壁球和变基之间的区别.据我了解,您在进行 rebase 时会进行壁球. 解决方案 git merge --squash 和 git rebase --interactive 都可以产生“压扁"的提交. 但它们的用途不同. git merge --squash abranch 将在目标分支上产生压缩提交,不标记任何合并关系. (注意:它不会立即 ..
发布时间:2021-12-06 09:06:53 其他开发

Git拒绝在rebase上合并不相关的历史

在 git rebase origin/development 期间,Git 显示以下错误消息: fatal:拒绝合并不相关的历史重做合并时出错 1234deadbeef1234deadbeef 我的 Git 版本是 2.9.0.它曾经在以前的版本中运行良好. 如何使用新版本中引入的强制标志继续进行此重新设置以允许无关的历史记录? 解决方案 自 Git 2.9 以来,默认行为发生 ..
发布时间:2021-12-06 08:51:28 其他开发

撤消 git rebase

有人知道如何轻松撤消 git rebase 吗? 想到的唯一方法是手动进行: git checkout 提交父级到两个分支 然后从那里创建一个临时分支 手动挑选所有提交 用手动创建的分支替换我重新定位的分支 在我目前的情况下,这是行得通的,因为我可以轻松地发现来自两个分支的提交(一个是我的东西,另一个是我同事的东西). 然而,我的方法让我觉得不是最理想的并且容易出错( ..
发布时间:2021-12-06 08:47:39 其他开发

使用 Git 压缩我最后的 X 提交

如何使用 Git 将我最后的 X 次提交合并为一次提交? 解决方案 你可以使用 git merge --squash 来解决这个问题,比 git rebase -i 稍微优雅一些代码>.假设您在 master 上,并且想要将最后 12 个提交压缩为一个. 警告:首先确保你提交了你的工作——检查 git status 是否干净(因为 git reset --hard 将丢弃已暂存和未暂 ..
发布时间:2021-12-06 08:37:16 其他开发

使用源树,在冲突中变基,在冲突解决后变基不起作用

我在 Windows 上使用 SourceTree 作为我的 git 工具. 我有一个 main 分支和一个 feature 分支,但是当我遇到冲突时,我无法让 SourceTree 执行变基. main 看起来像: c1 -> c2 -> c4 -> c5 功能看起来像: c1-> c2 -> c3 我想重新调整功能,所以它是: c1 -> c2-> c ..
发布时间:2021-11-30 14:22:40 其他开发

如何使用 Sourcetree 拆分过去未推送的提交?

Sourcetree 的交互式 rebase 功能很棒,但我经常发现自己希望能够将一个提交“拆分"为多个较小的提交.我知道有一种方法可以从命令行执行此操作,但我似乎无法在 UI 中找到任何位置来处理此问题. 有没有办法用 Sourcetree 做到这一点?或者这是我必须下拉到命令行才能实现目标的地方之一? 解决方案 git help rebase(搜索“SPLITTING COMMI ..
发布时间:2021-11-30 14:19:54 其他开发

如何“变基"Subversion 中的分支(没有任何真正的提交)(对存储库的访问受限)?

我对 Subversion 存储库中只有一个分支具有提交访问权限(写入权限). 不幸的是,前段时间说分支是从主干中创建的;我想在当前主干(当前 HEAD)的顶部“重新定位"它.所述分支上没有“真正的"提交,只有 基于主干 rev2921 创建 foo 分支 注意:我对上述分支外的任何地方都没有写权限. 解决方案 如果分支中没有提交,请 SVN 管理员删除并新建一个;这样你 ..
发布时间:2021-07-05 18:52:29 其他开发

当我有本地文件更改时,如何使用更少的命令从 master git rebase

如果我在一个功能分支上工作,并且我想从主分支中获取和变基更改,还有比这更短的方法吗? git stashgit结帐大师拉git checkout 我的功能分支git rebase 大师git stash pop 请注意我还必须如何存储,因为我编辑了一个不想提交的配置文件. 如何用更少的命令执行此操作? 解决方案 一行版本: git pull --rebase --autosta ..
发布时间:2021-07-05 18:52:26 其他开发

Git rebase:使用上游代码覆盖本地冲突提交的子集

我们分叉了一个开源项目,并在特定分支的顶部开发了功能.现在我正在尝试使用新的上游分支重新设置我们的代码.但是,rebase 会提供许多冲突错误消息.我希望覆盖与传入提交的冲突子集,但我找不到如何做到这一点. 以下命令将覆盖与上游代码的所有冲突: git rebase -Xours 上游/分支 但我只想覆盖那些与文档相关的提交(而不是与代码相关的提交). 有什么方法可以实现吗? ..
发布时间:2021-07-05 18:52:23 其他开发

如何在git交互式rebase中将提交与下一个提交合并?

git rebase -i 允许通过 squash 或 fixup 将提交与前一个合并.这两个选项都需要至少一个提交被 pick-ed.当一个人想要使用第一个提交但丢弃它的提交消息时呢?换句话说,如果我想让第一个提交与后续提交合并,我该怎么办? 解决方案 你只需要 --root 标志(自 Git 1.7.12 起可用,即,除了某些未命名的从未更新咳*Centos*咳 Linux 发行版). ..
发布时间:2021-07-05 18:52:20 其他开发

为什么我会与 `git rebase -p` 发生冲突

我试图了解 git rebase 如何处理合并.我认为使用 -p,它将能够重新调整已经解决的冲突合并.但它看起来不像. 以下是说明问题的示例: git init触摸 &&git 添加.&&git commit -m '第一次提交'git 分支 bgit 分支 c回声'a'>>一个&&git 添加.&&git commit -m agit 结帐 b回声'b'>>一个&&git 添加.&&gi ..
发布时间:2021-07-05 18:52:17 其他开发