草庐IT

mro_merge

全部标签

git - `--no-ff` 标志对 `git merge` 有什么影响?

使用gitklog,我无法发现gitmerge和gitmerge--no-ff的效果之间的区别。我如何观察差异(使用git命令或某些工具)? 最佳答案 --no-ff标志阻止gitmerge在检测到您当前的HEAD时执行“快进”您尝试merge的提交的祖先。快进是,git不构建merge提交,而是将分支指针移动到指向传入的提交。这通常发生在没有任何本地更改的情况下执行gitpull时。但是,有时您希望防止这种行为发生,通常是因为您希望维护特定的分支拓扑(例如,您正在merge主题分支并且希望确保它在读取历史记录时看起来是那样的)。为

Git merge hotfix 分支到 feature 分支

假设我们在Git中有以下情况:创建的存储库:mkdirGitTest2cdGitTest2gitinitmaster中的一些修改发生并提交:echo"OnMaster">filegitcommit-a-m"Initialcommit"Feature1从master分支出来并完成了一些工作:gitbranchfeature1gitcheckoutfeature1echo"Feature1">featureFilegitcommit-a-m"Commitforfeature1"与此同时,在master-code中发现了一个错误,并建立了一个hotfix-branch:gitcheckout

git - 您尚未完成 merge (存在 MERGE_HEAD)

我创建了一个名为“f”的分支并向master进行了checkout。当我尝试gitpull命令时,我收到了这条消息:Youhavenotconcludedyourmerge(MERGE_HEADexists).Please,commityourchangesbeforeyoucanmerge.当我尝试gitstatus时,它给了我以下信息:Onbranchmaster#Yourbranchand'origin/master'havediverged,#andhave1and13differentcommit(s)each,respectively.##Changestobecommit

git - 我怎么知道一个分支是否已经 merge 到 master 中?

我有一个包含多个分支的git存储库。我如何知道哪些分支已经merge到主分支中? 最佳答案 gitbranch--mergedmaster列出merge到master的分支gitbranch--merged列出merge到HEAD中的分支(即当前分支的尖端)gitbranch--no-merged列出没有merge的分支默认情况下,这仅适用于本地分支机构。-a标志将显示本地和远程分支,而-r标志仅显示远程分支。 关于git-我怎么知道一个分支是否已经merge到master中?,我们在S

git - 在 pull 期间解决 Git merge 冲突以支持它们的更改

如何解决gitmerge冲突以支持pull更改?我想从工作树中删除所有冲突的更改,而不必使用gitmergetool处理所有冲突,同时保留所有无冲突的更改。最好是,我想在pull时执行此操作,而不是之后。 最佳答案 gitpull-srecursive-Xtheirs或者,简单地说,对于默认存储库:gitpull-XtheirsIfyou'realreadyinconflictedstate...gitcheckout--theirspath/to/file 关于git-在pull期间解

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