我在我的项目中使用Git并尝试遵循最佳实践:我在一个主题分支上工作准备就绪后,我使用gitmerge--squash将topic分支merge到我的dev分支中。这使我的dev分支保持干净。每当dev分支稳定并且团队决定发布时,我们将dev分支merge到master分支,不使用压缩,并将提交标记为版本发布。这应该保留我们的历史记录,并且使用gitk,我们可以看到所有提交的来源。但是,我希望能够只看到应用到master的提交分支。我试过:gitlogmastergitshow-branch这些都只是master分支的历史。有没有办法轻松做到这一点? 最佳答案
如果你执行gitbranch-dbranchname,如果它引用了你历史中较早的提交,它将删除分支名称,或者告诉你你需要使用-D否则。我经常创建后来推送到master的分支,因此可以按此标准删除。有没有一种简单的方法可以列出所有指向master早期提交的分支,即git不介意仅使用-d选项删除的分支?如果它同时适用于所有分支,而不仅仅是大师,则可获得加分。我有82个本地分支机构,我知道现在可以安全地删除其中的大部分(如果不是大部分的话),但我不想花时间逐一尝试删除。 最佳答案 尝试:$gitcheckoutmaster#orwhate
如果你执行gitbranch-dbranchname,如果它引用了你历史中较早的提交,它将删除分支名称,或者告诉你你需要使用-D否则。我经常创建后来推送到master的分支,因此可以按此标准删除。有没有一种简单的方法可以列出所有指向master早期提交的分支,即git不介意仅使用-d选项删除的分支?如果它同时适用于所有分支,而不仅仅是大师,则可获得加分。我有82个本地分支机构,我知道现在可以安全地删除其中的大部分(如果不是大部分的话),但我不想花时间逐一尝试删除。 最佳答案 尝试:$gitcheckoutmaster#orwhate
我有两个master分支,每个分支用于不同的功能,然后我有一个综合分支将两者结合起来。我向综合分支提交了一些内容,但现在我发现我宁愿将该更改应用于特定于该功能的分支之一。有没有办法用git取消应用/应用到其他地方? 最佳答案 Cherry-pick提交到目标分支并重置源分支。假设,你想将最新的提交从source分支移动到target,做:gitcheckouttargetgitcherry-picksourcegitcheckoutsourcegitreset--hardsource^如果提交不是最后一次,您将不得不使用gitreb
我有两个master分支,每个分支用于不同的功能,然后我有一个综合分支将两者结合起来。我向综合分支提交了一些内容,但现在我发现我宁愿将该更改应用于特定于该功能的分支之一。有没有办法用git取消应用/应用到其他地方? 最佳答案 Cherry-pick提交到目标分支并重置源分支。假设,你想将最新的提交从source分支移动到target,做:gitcheckouttargetgitcherry-picksourcegitcheckoutsourcegitreset--hardsource^如果提交不是最后一次,您将不得不使用gitreb
我的git存储库包含敏感密码,出于我无法控制的原因,这些密码现在无法删除。现在一切正常,因为此存储库仅供内部使用,但我被要求创建一个可以安全地与合作伙伴共享的分支。有没有办法在git中创建一个分支,然后以无法使用日志检索的方式从中删除文件?似乎不太可能,但我想我会问。我能想到的唯一解决方案是将文件树复制到一个没有敏感文件的新git存储库——但那样我就失去了将合作伙伴更改merge回我的存储库的能力。 最佳答案 您可以做的一件事是创建您的存储库的一个分支,编辑掉密码,然后创建一个您将提供给合作伙伴的存储库的浅层克隆(深度为1)。他们可
我的git存储库包含敏感密码,出于我无法控制的原因,这些密码现在无法删除。现在一切正常,因为此存储库仅供内部使用,但我被要求创建一个可以安全地与合作伙伴共享的分支。有没有办法在git中创建一个分支,然后以无法使用日志检索的方式从中删除文件?似乎不太可能,但我想我会问。我能想到的唯一解决方案是将文件树复制到一个没有敏感文件的新git存储库——但那样我就失去了将合作伙伴更改merge回我的存储库的能力。 最佳答案 您可以做的一件事是创建您的存储库的一个分支,编辑掉密码,然后创建一个您将提供给合作伙伴的存储库的浅层克隆(深度为1)。他们可
我有时会使用包含许多分支的源代码存储库,其中大部分都是旧的,通常不再相关。在这些情况下,gitbranch中的完整分支列表不是很有帮助。有没有办法只列出“事件”分支?例如,只有在最近n天内收到提交的分支?理想情况下,该列表将包括每个分支的最后提交日期,并指示该分支是否已完全merge。附言:我意识到这也可以通过删除“旧”分支来解决(如在Whattodowithexperimentalnon-mergedgitbranches?中讨论的那样),但这在给定项目中可能并不总是实用或被接受。 最佳答案 您可以使用git-for-each-r
我有时会使用包含许多分支的源代码存储库,其中大部分都是旧的,通常不再相关。在这些情况下,gitbranch中的完整分支列表不是很有帮助。有没有办法只列出“事件”分支?例如,只有在最近n天内收到提交的分支?理想情况下,该列表将包括每个分支的最后提交日期,并指示该分支是否已完全merge。附言:我意识到这也可以通过删除“旧”分支来解决(如在Whattodowithexperimentalnon-mergedgitbranches?中讨论的那样),但这在给定项目中可能并不总是实用或被接受。 最佳答案 您可以使用git-for-each-r
我们在许多小组和项目中使用Gitlab8.10.1。许多项目恰好是其他项目的分支。我们的问题是,每当有人打开项目的merge请求时,默认目标分支不是项目的默认分支,而是来自一个非常具体的其他项目。有没有办法以某种方式覆盖此设置?只是为了清楚起见,我知道如何设置项目的默认分支并且这些设置看起来是正确的,但是gitlab在创建merge请求时似乎没有使用它们。这个问题非常烦人,当人们不注意并以完全不同的“master”作为目标发出merge请求时,会导致出现奇怪的情况。 最佳答案 默认MR目标取决于存储库是否为GitLabfork.fo