现状:origin/mybranch---A1---B1---A2---B2---A3---B3mybranch我想清理历史记录(A1到B3),尤其是。因为我还没有把它推到任何地方,因为我想准备一个只有那些B*的补丁。我想要的是:origin/mybranch---A1+A2+A3---B1+B2+B3mybranch我可能根本不会push这个(或者如果我愿意,只有求和的B*,我必须完全删除A*提交)并且在我进一步研究这个的同时,我可能会得到额外的这样的提交,即像这样:origin/mybranch---A1+A2+A3---B1+B2+B3---A4---B4mybranch然后我想
假设我在尝试merge并输入gitstatus后有这个:#Unmergedpaths:#(use"gitadd/rm..."asappropriatetomarkresolution)##addedbythem:myfile1.xhtml#addedbythem:myfile2.xhtml#addedbythem:myfile3.xhtml...我知道我想为每个文件执行此操作:gitcheckout--theirsmyfile1.xhtmlgitaddmyfile1.xhtml...但是有很多。我如何批量处理它们? 最佳答案 我的案
假设我在尝试merge并输入gitstatus后有这个:#Unmergedpaths:#(use"gitadd/rm..."asappropriatetomarkresolution)##addedbythem:myfile1.xhtml#addedbythem:myfile2.xhtml#addedbythem:myfile3.xhtml...我知道我想为每个文件执行此操作:gitcheckout--theirsmyfile1.xhtmlgitaddmyfile1.xhtml...但是有很多。我如何批量处理它们? 最佳答案 我的案
我正在处理程序生成的相当多的二进制文件。自动merge不适用于这些文件。merge时我想做的是从字面上复制一份或另一份。这并不理想,但我认为这是最好的方法。现在我的理解是,如果我想从我正在merge的分支中获取一个文件,并完全丢弃我们的版本,我应该这样做:gitmergegitcheckout--theirsgitaddgitcommit这是正确的,还是我遗漏了什么?我想在不使用.gitignore的情况下做到这一点 最佳答案 如果您的目标确实是保留一个版本或另一个版本,那么是的,您将要使用:gitcheckoutgitadd当然,
我正在处理程序生成的相当多的二进制文件。自动merge不适用于这些文件。merge时我想做的是从字面上复制一份或另一份。这并不理想,但我认为这是最好的方法。现在我的理解是,如果我想从我正在merge的分支中获取一个文件,并完全丢弃我们的版本,我应该这样做:gitmergegitcheckout--theirsgitaddgitcommit这是正确的,还是我遗漏了什么?我想在不使用.gitignore的情况下做到这一点 最佳答案 如果您的目标确实是保留一个版本或另一个版本,那么是的,您将要使用:gitcheckoutgitadd当然,
基本上我用的是Githubrevertbutton将featurebranch的先前PR恢复到master,然后我决定merge我之前恢复的相同featurebranch,但我不能这样做。步骤如下:PR将featurebranchmerge到master从(master)恢复PRmerge尝试创建新的PR以再次将功能分支merge到master。收到此消息:Thereisn'tanythingtocompare.masterisuptodatewithallcommitsfromfeature-branch.Tryswitchingthebaseforyourcomparison.关于
基本上我用的是Githubrevertbutton将featurebranch的先前PR恢复到master,然后我决定merge我之前恢复的相同featurebranch,但我不能这样做。步骤如下:PR将featurebranchmerge到master从(master)恢复PRmerge尝试创建新的PR以再次将功能分支merge到master。收到此消息:Thereisn'tanythingtocompare.masterisuptodatewithallcommitsfromfeature-branch.Tryswitchingthebaseforyourcomparison.关于
我们在许多小组和项目中使用Gitlab8.10.1。许多项目恰好是其他项目的分支。我们的问题是,每当有人打开项目的merge请求时,默认目标分支不是项目的默认分支,而是来自一个非常具体的其他项目。有没有办法以某种方式覆盖此设置?只是为了清楚起见,我知道如何设置项目的默认分支并且这些设置看起来是正确的,但是gitlab在创建merge请求时似乎没有使用它们。这个问题非常烦人,当人们不注意并以完全不同的“master”作为目标发出merge请求时,会导致出现奇怪的情况。 最佳答案 默认MR目标取决于存储库是否为GitLabfork.fo
我们在许多小组和项目中使用Gitlab8.10.1。许多项目恰好是其他项目的分支。我们的问题是,每当有人打开项目的merge请求时,默认目标分支不是项目的默认分支,而是来自一个非常具体的其他项目。有没有办法以某种方式覆盖此设置?只是为了清楚起见,我知道如何设置项目的默认分支并且这些设置看起来是正确的,但是gitlab在创建merge请求时似乎没有使用它们。这个问题非常烦人,当人们不注意并以完全不同的“master”作为目标发出merge请求时,会导致出现奇怪的情况。 最佳答案 默认MR目标取决于存储库是否为GitLabfork.fo
您可以使用gitmerge-base确定是否可以快进,但是是否有一些git技巧可以确定两个分支是否会通过某种策略干净地merge而不实际进行merge?我知道gitmerge--no-commit--no-ff$BRANCH但这会影响工作目录,我想避免这种情况,因为这是网络服务的一部分。 最佳答案 我会通过创建第三个临时分支来做到这一点。假设您要将分支branchFrommerge到branchTo中。然后它会像这样:gitcheckoutbranchTo#onlyifnotalreadyatbranchTogitcheckout-