草庐IT

mro_merge

全部标签

git:如何添加自定义 merge 策略?

我正在尝试添加一个类似于此问题中的自定义merge策略:Gitmergeconflicttoalwaystakethenewestfile我已将脚本保存为git-merge-latest.sh并将以下行添加到.git/config:[merge"latest"]name=selectlatestfilemergedriverdriver=git-merge-latest.sh%O%A%B但是,当我运行gitpull--strategylatest时,我收到消息:Couldnotfindmergestrategy'latest'.Availablestrategiesare:octopu

Git 将错误修复反向移植到旧分支的策略(cherry-pick vs. merge)

我们团队的工作方式如下:我们的GitHub存储库中只有一个master分支,它不稳定-每天都会被推送到那里;对于稳定版本,我们使用标签(为了开发,我们在GitHub上使用私有(private)分支)我们每3周发布一个新的次要版本,其中包含错误修复和新功能(例如1.2.4、1.2.5、1.2.6...)我们还必须在有限的时间(几个月)内维护每个次要的旧版本,因此当有人使用1.2.4而最新版本是1.2.7时,他们发现了一个错误,他们可以要求我们修复他们使用的分支上的错误。然后我们发布一个补丁版本,1.2.4A。补丁非常特别。我们通常为次要版本做不超过1-2个补丁。对于大多数版本,我们不打补

Git 将错误修复反向移植到旧分支的策略(cherry-pick vs. merge)

我们团队的工作方式如下:我们的GitHub存储库中只有一个master分支,它不稳定-每天都会被推送到那里;对于稳定版本,我们使用标签(为了开发,我们在GitHub上使用私有(private)分支)我们每3周发布一个新的次要版本,其中包含错误修复和新功能(例如1.2.4、1.2.5、1.2.6...)我们还必须在有限的时间(几个月)内维护每个次要的旧版本,因此当有人使用1.2.4而最新版本是1.2.7时,他们发现了一个错误,他们可以要求我们修复他们使用的分支上的错误。然后我们发布一个补丁版本,1.2.4A。补丁非常特别。我们通常为次要版本做不超过1-2个补丁。对于大多数版本,我们不打补

git - .gitattributes 和单个文件的 merge 策略

我的(网络)应用程序有一个主分支和一个测试分支。这些项目几乎相同,除了一个设置应用程序的文件,比如“setup”。每当我将一个分支merge到另一个分支时,我希望该分支保留其设置版本。也就是说,git不应尝试merge对该文件的更改。我关注了guidancefromtheProGitbook并创建了一个.gitattributes文件,其中包含“setupmerge=ours”这一行。但是,这不起作用-如果我引入冲突,则无论是快进merge还是。(准确地说:$:mkdirgitest$:cdgittest$:gitinit$:echo"setupmerge=ours">>.gitatt

git - .gitattributes 和单个文件的 merge 策略

我的(网络)应用程序有一个主分支和一个测试分支。这些项目几乎相同,除了一个设置应用程序的文件,比如“setup”。每当我将一个分支merge到另一个分支时,我希望该分支保留其设置版本。也就是说,git不应尝试merge对该文件的更改。我关注了guidancefromtheProGitbook并创建了一个.gitattributes文件,其中包含“setupmerge=ours”这一行。但是,这不起作用-如果我引入冲突,则无论是快进merge还是。(准确地说:$:mkdirgitest$:cdgittest$:gitinit$:echo"setupmerge=ours">>.gitatt

git:为什么我不能在 Squash merge 后删除我的分支?

我有一个带有mainline的git仓库(相当于master)和一些局部特征分支。例如:$gitbranch*mainlinefeature1feature2feature3当我执行以下操作时,我能够将我在功能分支中的所有编辑merge到一个对mainline的提交中。:$gitcheckoutmainline$gitpull$gitcheckoutfeature1$gitrebasemainline$gitcheckoutmainline$gitmerge--squashfeature1$gitcommit$gitpush我的问题是,此时,当我尝试删除feature1时分支,它告诉我

git:为什么我不能在 Squash merge 后删除我的分支?

我有一个带有mainline的git仓库(相当于master)和一些局部特征分支。例如:$gitbranch*mainlinefeature1feature2feature3当我执行以下操作时,我能够将我在功能分支中的所有编辑merge到一个对mainline的提交中。:$gitcheckoutmainline$gitpull$gitcheckoutfeature1$gitrebasemainline$gitcheckoutmainline$gitmerge--squashfeature1$gitcommit$gitpush我的问题是,此时,当我尝试删除feature1时分支,它告诉我

git - 如何在 SourceTree 中使用 VS Code 作为 merge 和差异工具?

Thisquestion和其他一些人讨论这如何在Mac上工作,但我无法从Microsoft或Atlassian找到有关在Windows上执行此操作的方法的文档,试图使其成为全局Git设置。(我只是喜欢尽可能在IDE中更改内容。)SourceTree的“选项”对话框“差异”选项卡中的“自定义”设置使用哪些参数,用于与VS-Code进行差异化和merge? 最佳答案 可能还有其他更好的变体,但经过一些实验后我发现这些变体效果很好......为“外部差异工具”和“merge工具”选择“自定义”两种情况下的“差异命令”都是安装VS-Code

git - 如何在 SourceTree 中使用 VS Code 作为 merge 和差异工具?

Thisquestion和其他一些人讨论这如何在Mac上工作,但我无法从Microsoft或Atlassian找到有关在Windows上执行此操作的方法的文档,试图使其成为全局Git设置。(我只是喜欢尽可能在IDE中更改内容。)SourceTree的“选项”对话框“差异”选项卡中的“自定义”设置使用哪些参数,用于与VS-Code进行差异化和merge? 最佳答案 可能还有其他更好的变体,但经过一些实验后我发现这些变体效果很好......为“外部差异工具”和“merge工具”选择“自定义”两种情况下的“差异命令”都是安装VS-Code

git - 如何撤消 git merge squash?

我刚刚做了一个gitmerge--squashfeature-branch进入我的develop分支。问题是上面的命令在没有创建新提交的情况下更新了头部。我的意图是创建一个单独的提交以应用于develop的负责人。所以简而言之,merge前后develop分支的日志是完全一样的。有没有办法将develop恢复到gitmerge之前的状态?谢谢。解决方案根据DanD.的评论和下面接受的答案,我能够解决我的问题。看看下面我做了什么,以防你在同一条船上:1-我运行了gitreflog,它列出了我对我的develop分支所做的所有提交和checkout。2-我没有按照建议执行gitresetH