有没有办法找出一个提交来自哪个分支给它的sha1?
如果您能告诉我如何使用Ruby Grit完成此任务,那么奖励积分.
我有一个存储库,其中包含分支主服务器和A以及两者之间的大量合并活动.当基于master创建分支A时,如何在我的存储库中找到提交?
我的存储库基本上是这样的:
-- X -- A -- B -- C -- D -- F (master)
\ / \ /
\ / \ /
G -- H -- I -- J (branch A)
Run Code Online (Sandbox Code Playgroud)
我正在寻找修订版A,这不是git merge-base (--all)找到的.
现在,当我键入"git branch"
它以任意顺序列出我的分支.
我更喜欢的是,如果"git branch"将我的输出列在像fasion这样的树中,有些像:
master
|-- foo
|-- foo1
|-- foo2
|-- bar
|-- bar4
Run Code Online (Sandbox Code Playgroud)
在这里,foo&bar是从主人那里分出来的; foo1和foo2从foo分支出来; bar4从bar分支.
这很容易实现吗?
[仅限命令行实用程序.这需要适合我的zsh/vim工作流程.]
有没有办法让现有的分支成为git中的孤儿?
git checkout --orphan似乎只创造了一个新的孤儿?
想象一下:
我三天前创建了分支“B”。这是我目前正在处理的分支。现在我想知道分支创建后发生了什么变化 ( X)。
这给了我 B 和 X 之间的差异(如图片中的虚线):
git diff A...
Run Code Online (Sandbox Code Playgroud)
上面的命令很方便,因为它很短而且我不需要记住“X”。
但是:我超级懒。我不想记住我当前的分支是从哪个分支创建的。
我怎样才能避免记住/输入A?
我正在寻找一种不需要我这边输入的方法。它应该列出自上次创建分支以来的所有更改。
我克隆了一些git存储库,并做了"git branch abcd",将我转换为源自origin/abcd的分支.abcd不是默认的原始分支.然后,我从abcd创建了一个功能分支"my_feature".我想在一个脚本中将"git merge origin/abcd"写入my_feature中,无论所使用的原始分支的名称如何都适用(或者至少适用于其他一些答案中没有描述复杂分支结构的简单情况) GIT).
如何找到当前分支创建的"最近"/"父"原点分支?
现在我在功能分支中,但不管它是从开发分支还是发布分支创建的.
任何人都可以告诉我如何获得当前git分支的父分支名称.
是的,这似乎非常类似于" 查找git分支的父分支 ",但我没有找到我的答案.
我想我想知道如何找到我当前的分支父母,但我可能会问错误的问题.所以我会提供我的方案.
我们的组织有几个长期运行的发布分支,不会重命名(但最终在发布后不推荐)
有时我会从其中一个发布分支创建一个功能分支来处理问题.这是一个本地特色分支.
我被叫去处理其他一些项目,其他一些发布等.
我回到这个功能,现在我想将它重新绑定到它最初分支的最新提交.但是已经过了足够的时间,我不记得这是从版本x或发布y分支出来的
那我该怎么做?在我看来,我以为我会弄清楚我创建了哪个发布分支,然后重新绑定到该分支上的最后一次提交.
我知道还有其他组织技术可以避免这个问题,比如总是在我的功能分支中包含基本分支的名称.但那艘船已经开航了.
git我遇到的挑战是否有解决方案?
如何获取git本地git当前提交已分支的远程分支的名称?
我假设这是一个4步骤,前三个步骤可能如下:
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
git rev-parse HEAD # full hash
Run Code Online (Sandbox Code Playgroud)
git rev-parse --abbrev-ref @{upstream}
Run Code Online (Sandbox Code Playgroud)
这样做需要什么具体代码?在阅读了@ ChrisJohnsen对其他帖子的回答之后,我想这个解决方案涉及查找从远程存储库中的另一个分支派生的最新提交.但是,链接发布的答案中的代码似乎都是为本地存储库设计的. 这个当前的问题是不同的,因为我问如何从本地存储库子分支中找到远程存储库父分支.
我正在添加bash标签,因为这些命令在可以使用bash脚本的CentOS服务器上运行.