所以,我试图找到一个特定提交的分支名称.(c853d8cf3ae34dae9866b874b96c6529515d7e90)
我在git问题上引用了父ID和提交id.
如何才能找到给定的提交ID被推入' x'分支?
我尝试git logw/--decorate和--source选项.但仍然无法提交的支行名称 2f3cb60和 d7e7776,为什么呢?
#git log 2f3cb60 --graph --decorate --source --all --oneline
...
* | | | 1920ad5 refs/heads/gpio support gpio lib
| |/ /
|/| |
* | | 2f3cb60 2f3cb60 fix
* | | d7e7776 2f3cb60 fix
| |/
|/|
* | aa4dcfb refs/remotes/origin/httpd support
* | cfc839d refs/remotes/origin/httpd add folder
Run Code Online (Sandbox Code Playgroud)
如何显示带分支名称的git日志?
我的Ant build.xml脚本以
<property environment="env"/>
<echo>GIT_BRANCH = ${env.GIT_BRANCH}</echo>
<echo>PWD = ${env.PWD}</echo>
Run Code Online (Sandbox Code Playgroud)
Hudson CI设置为在任何分支更改时构建.控制台输出是......
Commencing build of Revision 90906a63929e9074035eb5b10c71ee055ad3e13c (origin/DPM-48)
GitAPI created
Checking out Revision 90906a63929e9074035eb5b10c71ee055ad3e13c (origin/DPM-48)
[workspace] $ git.exe checkout -f 90906a63929e9074035eb5b10c71ee055ad3e13c
[workspace] $ cmd.exe /C '"C:\Program Files\WinAnt\bin\ant.bat" -file build.xml ...'
[echo] GIT_BRANCH = ${env.GIT_BRANCH}
[echo] PWD = /cygdrive/d/.hudson
Run Code Online (Sandbox Code Playgroud)
从控制台输出,Hudson知道它正在构建主题分支DPM-48但是没有设置环境变量GIT_BRANCH并且'git branch'返回git处于'分离的HEAD'状态
* (no branch)
master
DPM-48
Run Code Online (Sandbox Code Playgroud)
我想知道的是我正在哈德森建立的分支.必须有办法做到这一点.
标题不准确,但我不能在一行中表达得更好.
我只想看到一个不同的消息git-log.我认为它可以以某种方式使用git-notes,但我没有管理它.
我需要它来修复提交消息中的错误.我总是在那里写一个文件的名称,其中包含我与客户的沟通(看起来就像T1234 Replace foo by bar).通信往往很长,所以我可以花很多时间,直到我发现我在提交消息中被错误的文档名称误导.
git-notesgit-notes事实上看起来像这里所说的那样有效.但是我总是使用
git log --oneline
Run Code Online (Sandbox Code Playgroud)
所以我从来没有看到它.关于关于向用户说谎的评论:恕我直言,当这种情况发生时,只有在使用特殊的开关时才会接受--replace-messages-by-notes,不是吗?因为我总是使用别名而不是git log直接使用,所以我会得到我想要的东西而不需要输入很多东西.
你认为这是一个合理的功能要求还是你会向我推荐另一个工作流程?
实际上,我试图获得有关合并冲突的报告.我使用'git blame'来查看谁更改了哪一行,但我找不到分支和存储库名称信息.
有没有办法从'git blame'或commit ids'中找到文件的存储库名称,分支名称和作者名称,这样每当发生合并冲突时,我都可以向触及该文件/行的作者发送电子邮件解决它.
我有一个包含多个存储库的目录,它看起来像这样:
folder
|- repo1
| |- .git
| |- File1.txt
|- repo2
| |- .git
| |- File2.txt
|- repo3
| |- .git
| |- File3
Run Code Online (Sandbox Code Playgroud)
我想将它们组合成单个git存储库,我按照这些说明进行了操作.
在这些指令之后,我有以下结构:
folder
|- .git
|- repo1
| |- File1.txt
|- repo2
| |- File2.txt
|- repo3
| |- File3
Run Code Online (Sandbox Code Playgroud)
这很棒.但是现在我有主分支(来自repo1)和历史上的两个孤儿分支:
* Merge repo3
|\
| * Add third file
* Merge repo2
|\
| * Add second file
* Add first file
Run Code Online (Sandbox Code Playgroud)
我想得到的是这样的
* Merge repo 3
* Add third file …Run Code Online (Sandbox Code Playgroud) 我需要使用 JGit 获取与特定提交关联的分支名称。我使用 JGit 获取存储库的提交 SHA 的完整列表,现在我需要知道它所属的分支的名称。
如果有人能让我知道如何实现这一目标,我将不胜感激。
我想看看我所在的实际分支来自哪个分支。我已经查看了日志,但它太吵了,我想在这种情况下 100% 确定找到正确的分支。
我想从给定的标签中获取分支名称.我试过了,git describe --tag <tag-name>但这并没有为我提供任何分支名称.我尝试使用gitk显示标签和分支,但gitk没有显示标签.当我列出标签时,git tag -l我看到列表中存在标签名称.
我只想要一个简单的命令,可以在提供标签名称时告诉我分支.
作为一个对 Git 比较陌生的人,我最近(终于!)明白了一个分支实际上只是一个指向特定提交的指针,有时将“提交属于哪个分支”重新表述为“来自哪个分支”可能会更好分支是一个提交可达”。
比如下图来自Git官方文档:
在这张图片中,我会直觉地认为提交C4“属于”分支master,提交C3并C5属于iss53. 但是C0通过C2呢?他们会属于两个分支吗?或者,我必须说,他们是“可达”的分支机构master和iss53?
一旦我合并iss53到master:
由于分支iss53已合并到master,这是否使提交C0通过C2属于master“更多” iss53?
如果我在合并后删除分支iss53怎么办?哪个分支将提交C3并C5属于?仔细想了想,似乎在合并之后,commits C4, C3, 和C5就分支历史而言是“平等的”,我无法分辨他们三个属于哪个分支。这是因为删除后iss53,似乎没有要任何信息是否C4属于任何历史分支任何超过C3和C5。
我找到了这个答案,它说最好根据“可以从哪些分支到达此提交”来考虑这一点。但这是否意味着C4、C3和C5都可以从master分支访问???但是您如何处理图中发生的分支出身呢?那有关系吗?
另外,我联系到的答案说,有可能在那里提交不能被任何分支到达的情况下,如何能是怎样呢?它的含义是什么? …