草庐IT

Merge分表

全部标签

git - 为什么 git merge 有时会创建一个提交,有时不会?

当我从另一个分支执行gitmerge到当前工作区时,git有时会进行新的提交:Mergeremote-trackingbranchxxxintoxxx有时,它不会:Fast-forward...srcfiles...那么什么决定是否应该创建提交? 最佳答案 所谓的“快进”merge不会产生提交,而其他merge(通常称为“Octopusmerge”(现在你明白为什么github的吉祥物是Octopus了))产生提交。基本上,当您的分支没有发散时,就会发生快进。假设你想在master分支中merge一个分支foo。如果这些分支没有分歧

git merge 重命名的文件

我有一个大型网站,我正在将其迁移到一个新框架并在此过程中添加git。当前站点没有任何版本控制。我首先将站点复制到一个新的git存储库中。我创建了一个新分支并进行了所有需要的更改以使其与新框架一起工作。其中一个步骤是更改所有页面的文件扩展名。现在,在我处理新站点期间,已对旧站点上的文件进行了更改。所以我切换到master并复制了所有这些更改。问题是当我将分支与新框架merge回master时,在master分支上更改的每个文件都会发生冲突。我不会太担心,但是有几百个文件发生了变化。我已经尝试过gitrebase和gitrebase--merge但没有成功。如何在不处理每个文件的情况下me

git - 在两个单独的文件上运行 git merge 算法

我想在git存储库中的两个任意文件上利用git-merge算法。这是我的工作目录:folder/file1file2file1和file2很相似,但我想看看git如何merge它们,就好像它们是同一文件的不同版本一样。换句话说,我想要这样的东西:gitmerge-filesfile1file2>merge_of_file1_file2有办法吗? 最佳答案 这真的没有意义,因为您没有提供共同的祖先。但是,如果您有一个,则可以使用:gitmerge-file这会将结果放在当前版本文件中;如果你想在别处使用它们,请使用:gitmerge-

windows - 为什么我不能在 Windows 上使用 TortoiseMerge 作为我的 git merge 工具?

我正在尝试执行我的第一次Gitmerge(令人兴奋!),但无法让GitGui(来自Git1.7.4.msysgit.0的0.13.GITGUI)识别TortoiseMerge(1.6.11.20210x64)Windows7。基于ananswertoasimilarquestion,我进行了以下配置更改:$gitconfig--globalmerge.tooltortoisemerge$gitconfig--globalmergetool.tortoisemerge.cmd'TortoiseMerge.exe-base:"$BASE"-mine:"$LOCAL"-theirs:"$RE

Git:在 merge 过程中忽略一些文件(将一些文件限制在一个分支中)

我有两个分支,A和B。分支A有一个目录examples,其中包含一些被git跟踪的文件,这些文件应该不出现在分支B。在我的工作流程中,我确实经常将A中的更改merge到B中,每当examples发生一些更改时,这都是一个问题。目前,我手动执行此操作:在merge后删除文件或在我已经删除的文件发生更改时解决冲突。是否可以在merge过程中忽略这些文件?(或者是否可以将一些文件限制在一个分支(A)或远离一个分支(B)?)让我试着解释一下我为什么这样做:A是博客的骨架(模板、脚本等),B是我的博客(A填充了我自己的帖子、图片、草稿等)。A是公开的,我试图让它对其他人看起来和使用它是通用的,但

git rebase 交互式 : squash merge commits together

我想要一个简单的解决方案来在交互式rebase期间将两个merge提交压缩在一起。我的仓库看起来像:X---Y---------M1--------M2(my-feature)//////a---b---c---d---e---f(stable)也就是说,我有一个my-feature分支,最近merge了两次,中间没有真正的提交。我不只是想重新设置my-feature分支,因为它是自己的已发布分支,我只是想将最后两个merge提交merge为一个(尚未发布这些提交还)X---Y----M(my-feature)////a---...--f(stable)我试过:gitrebase-p-

Git rebase (Merge Squash) 我的功能分支到另一个分支

我正在寻找一个git命令来帮助我处理我的功能分支,当它们准备好进入Master时。这个git命令会将我在分支上的所有更改压缩到master之上的单个提交中。我今天这样做:gitrebaseorigin/mastergitrebase-iHEAD~4其中4是压缩的提交数。但是,这需要我知道我有多少次提交。我今天通过运行来做到这一点:gitlogHEAD...origin/master然后计算提交数。我觉得好像应该有更好的方法来做到这一点。或者其他人也是这样做的? 最佳答案 您所要做的就是:gitcheckoutfeature_bran

git - 解决 merge 冲突后如何使用默认的 git commit 消息?

在进行merge并解决冲突后,是否有一种“简单”的方法来仅从命令行接受默认生成的提交消息?我们的一位开发人员将解决所有冲突,然后执行gitcommit-m"MergeCommit"替换生成的列出所有冲突文件的提交消息。我想要一个不同的标志,它只需要不修改当前文件。我知道有一个-F或--file=选项,但这需要始终知道文件名。谢谢 最佳答案 根据thedocs,我只是尝试了这个简单的命令,它对我有用:gitcommit--no-edit然后,运行gitlog确认默认消息已被使用。 关于gi

git - 无法 checkout ,文件未 merge

我正在尝试从我的工作目录中删除该文件,但是在使用以下命令之后gitcheckoutfile_Name.txt我收到以下错误信息error:path'first_Name.txt'isunmerged那是什么以及如何解决?以下是我的git状态$gitstatusOnbranchmasterYouarecurrentlyrevertingcommitf200bf5.(fixconflictsandrun"gitrevert--continue")(use"gitrevert--abort"tocanceltherevertoperation)Unmergedpaths:(use"gitre

git merge : Removing files I want to keep!

如何在git中merge两个分支,同时保留分支中的必要文件?merge两个分支时,如果一个文件在一个分支中被删除,而在另一个分支中没有被删除,则该文件最终被删除。例如:创建新分支时,master中存在一个文件您从master中删除该文件,因为我们(还)不需要它您在分支中进行更改以添加一项功能,它依赖于现有文件您在master中修复了错误(不能丢弃)有一天你merge了,文件不见了!如何复制:用一个文件创建一个git仓库。gitinitecho"test">test.txtgitadd.gitcommit-m"initialcommit"创建分支gitbranchbranchA删除mas