1
296
假设远程存储库具有 发展 分支(您的初始描述描述在本地存储库中描述它,但听起来它也存在于远程存储库中),您应该能够实现我认为您想要的,但是这种方法与您预想的有点不同。 Git的历史基于 DAG 提交的。分支(和__refs_一般来说)只是临时标签,指向不断增长的提交DAG中的特定提交。因此,分支之间的关系可能会随时间而变化,但提交之间的关系不会。
看起来像
现在看起来像
现在看起来像
但是,如果我们问__是否承诺
所以,您可以问一些问题,比如推送提交是 发展 分支机构?_157;,但您不能可靠地问_156;什么是推送提交的父分支?艾斯。 一个最可靠的问题是:
可实施为:
这将涵盖一些你想要限制的内容,但可能不是所有内容。 下面是一个扩展的示例历史,供参考:
上述代码可用于拒绝
也拒绝
|
2
180
遣词造句另一种表达问题的方法是“驻留在当前分支之外的分支上最近的提交是什么,它是哪个分支?” 解决方案你可以用一点命令行魔法找到它
它的工作原理如下:
以及结果在上运行上述代码
会给你
|
3
78
您也可以尝试:
|
4
50
我有一个解决你整个问题的办法(决定
你可以使用
如果在其中,它会打印出来
|
5
33
GIT亲本你可以运行命令
若要查找分支的父级,请添加 @乔克莱斯勒 作为一个答案 git别名 . 它将简化使用。 使用任何文本编辑器打开位于“~/.gitconfig”的gitconfig文件。
在文件中添加以下别名命令:
保存并退出编辑器。
运行命令
就是这样! |
6
30
这对我来说很管用。
礼貌回答:@droidbot和@jistanidiot |
7
11
由于上面的所有答案都不适用于我们的存储库,所以我希望使用中的最新合并来共享我自己的方法。
把它放在一个名为
从输出中,我们可以根据自己的分支约定和每个分支的合并数手动检测父分支。
编辑:
如果你使用
|
8
8
请记住,如中所述
"Git: Finding what branch a commit came from"
,您无法轻松地定位已提交的分支(分支可以重命名、移动、删除…),即使
如果两个提交的ID匹配,您就可以离开(这意味着
|
9
5
乔·克莱斯勒的命令行魔法可以简化。以下是所写的逻辑:
我们可以在相对简单的
就这样崩溃了:
将行拆分为字段
查找包含星号的行
…但不是当前分支名称
当您找到这样一行时,打印它的第二个字段(即字段分隔符字符第一次和第二次出现之间的部分)。对于简单的分支名称,这只是括号之间的名称;对于具有相对跳转的引用,它只是没有修饰符的名称。所以我们的一组字段分隔符处理了
然后立即退出。这意味着它只处理第一条匹配行,因此我们不需要通过管道传输输出
|
10
4
以下是Mark Reed解决方案的PowerShell实现:
|
11
3
@MarkReed:您应该补充一下,提交行不仅应该包含一个星号,而且应该以一个星号开始!否则,包含星号的提交消息也包含在匹配的行中。所以应该是:
或长版本:
|
12
3
使用Ant跨平台实现
|
13
3
我不是说这是解决这个问题的一个好方法,但是这对我来说确实有效。
|
14
2
实现了与Mark Reed的答案相同的目的,但使用了一种更安全的方法,在许多情况下都不会出现错误行为:
|
15
1
这些天任何想这样做的人——Atlassian的SourceTree应用程序向您展示了您的分支如何相互关联的一个很好的可视化表示,即它们从何处开始,以及它们当前处于提交顺序中的位置(例如head或4 commit s behind等)。 |
16
1
另一种选择:
最后一次承诺这是我的分支
|
17
1
解决方案
解决方案
based on
局限和警告
结果
尽管存在当地分支机构(例如仅
*-或
为什么不给我展示分支工作?
解决方案
基于
|
18
0
如果使用源树查看提交详细信息>父级>,则会看到带下划线的提交编号(链接) |
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
Igor · git重置已删除目录上的头 2 年前 |
Robo · 撤消删除Git中被忽略的文件 2 年前 |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
Siggi · 使用git移动文件时丢失历史记录 2 年前 |