草庐IT

rebase-merge

全部标签

git - 如何将多个提交 merge 到另一个分支作为单个压缩提交?

我有一个远程Git服务器,这是我要执行的场景:我为每个错误/功能创建一个不同的Git分支我继续使用非官方Git消息在该Git分支中提交我的代码在顶级存储库中,我们必须使用官方Git消息对一个错误进行一次提交那么我如何才能将我的分支merge到远程分支,以便他们对我的所有checkin只获得一次提交(我什至想为此提供提交消息)? 最佳答案 假设你的bug修复分支被称为bugfix并且你想将它merge到master中:gitcheckoutmastergitmerge--squashbugfixgitcommit这将从bugfix分支

git - 如果我已经开始 rebase ,如何将两个提交 merge 为一个?

我正在尝试将2个提交merge为1个,所以我遵循了“squashingcommitswithrebase”fromgitready.我跑了gitrebase--interactiveHEAD~2在生成的编辑器中,我将pick更改为squash,然后保存退出,但rebase失败并出现错误Cannot'squash'withoutapreviouscommit现在我的工作树已经达到这种状态,我很难恢复。命令gitrebase--interactiveHEAD~2失败:Interactiverebasealreadystarted和gitrebase--continue失败Cannot'sq

git - 我如何有选择地 merge 或从 Git 中的另一个分支中挑选更改?

我在一个新项目中使用Git,该项目有两个并行的——但目前处于试验阶段——开发分支:master:导入现有代码库加上一些我通常确定的修改exp1:实验分支#1exp2:实验分支#2exp1和exp2代表两种截然不同的架构方法。在我走得更远之前,我无法知道哪个(如果有的话)会起作用。当我在一个分支中取得进展时,我有时会进行对另一个分支有用的编辑,并且只想merge这些。将有选择的更改从一个开发分支merge到另一个开发分支,同时保留其他一切的最佳方法是什么?我考虑过的方法:gitmerge--no-commit然后手动取消暂存大量我不想在分支之间共享的编辑。将常用文件手动复制到临时目录,然

git - 你什么时候使用 Git rebase 而不是 Git merge?

什么时候推荐使用Gitrebase与Gitmerge?rebase成功后还需要merge吗? 最佳答案 精简版Merge接受一个分支中的所有更改,并在一次提交中将它们merge到另一个分支中。Rebase说我希望我分支的点移动到一个新的起点那么什么时候使用其中一个?merge假设您为了开发单个功能而创建了一个分支。当您想要将这些更改恢复为master时,您可能需要merge。rebase第二种情况是,如果您开始进行一些开发,然后另一个开发人员进行了不相关的更改。您可能想要pull然后rebase,以基于存储库中的当前版本进行更改。压

git - 如何 merge 两个 Git 存储库?

考虑以下场景:我在自己的Git仓库中开发了一个小型实验项目A。它现在已经成熟,我希望A成为更大的项目B的一部分,它有自己的大存储库。我现在想将A添加为B的子目录。如何将Amerge到B中而不丢失任何一方的历史记录? 最佳答案 如果你想mergeproject-a到project-b:cdpath/to/project-bgitremoteaddproject-a/path/to/project-agitfetchproject-a--tagsgitmerge--allow-unrelated-historiesproject-a/m

git - 如何删除所有已 merge 的 Git 分支?

如何删除已经merge的分支?我可以一次删除它们,而不是一个一个地删除每个分支吗? 最佳答案 注意:如果您的工作流将这些分支作为可能的祖先,您可以添加其他分支以排除,例如master和dev。通常我从“sprint-start”标签分支出来,而master、dev和qa不是祖先。首先,列出在远程merge的本地跟踪分支(考虑使用-r标志列出所有远程跟踪分支)。gitbranch--merged您可能会看到一些不想删除的分支。我们可以添加一些参数来跳过我们不想删除的重要分支,例如master或develop。以下命令将跳过master

Git 拒绝在 rebase 上 merge 不相关的历史记录

在gitrebaseorigin/development期间,Git显示以下错误消息:fatal:refusingtomergeunrelatedhistoriesErrorredoingmerge1234deadbeef1234deadbeef我的Git版本是2.9.0。它曾经在以前的版本中运行良好。如何使用新版本中引入的强制标志继续此rebase以允许不相关的历史记录? 最佳答案 您可以使用--allow-unrelated-histories强制merge发生。这背后的原因是自Git2.9以来默认行为发生了变化:"gitmer

git - 如何安全地将 Git 分支 merge 到 master 中?

从master创建了一个新分支,我们称之为test。有几个开发人员要么提交到master,要么创建其他分支,然后merge到master。假设test的工作需要几天时间,而您希望通过master中的提交不断更新test。我会从test中执行gitpulloriginmaster。问题1:这是正确的方法吗?顺便说一句,其他开发人员可以很容易地处理与我处理过的相同文件。我在test上的工作已经完成,我准备将它merge回master。以下是我能想到的两种方式:答:gitcheckouttestgitpulloriginmastergitpushorigintestgitcheckoutma

linux - git rebase 无法执行编辑器

我正在尝试使用rebase压缩一些git提交。当我运行这个时:gitrebase-iHEAD我收到这个错误:/usr/lib/git-core/git-rebase:1:eval:/usr/bin/mate:notfoundCouldnotexecuteeditor我试图更改gitconfig编辑器变量,但我还没有让它工作。现在我的配置文件显示如下:[core]editor=/usr/bin/vim我正在运行Ubuntu13.04有什么想法吗? 最佳答案 做类似的事情$gitconfig--globalcore.editoremac

linux - Git merge 另一个远程的分支

现在,我看到很多来自LinusTorvalds和/或Gitster的提交看起来像这样:Mergebranch'maint'ofgit://github.com/git-l10n/git-pointomaint…*'maint'ofgit://github.com/git-l10n/git-po:l10n:de.po:fixafewminortypos或:Mergebranch'upstream'ofgit://git.linux-mips.org/pub/scm/ralf/upst………ream-linusPullMIPSupdatefromRalfBaechle:...*'upstr