繁体   English   中英

获取在特定分支上提交的文件列表(git / Atlassian Stash)

[英]Getting a list of files that were committed on a specific branch (git / Atlassian Stash)

如何获取在特定分支(已删除该分支)上提交的文件(或提交)的列表?

例如,我从master创建TEST-123功能分支,对其进行一些提交,推送到我的中央存储库,然后通过拉取请求合并回master。 TEST-123被删除。

在将来的某个时候,我需要知道在TEST-123上提交了哪些文件。

我的最终目标是能够获得使用特定票证检入的文件列表(所有文件都将在名为票证的分支中检入)。

预先感谢您的任何想法/建议。

-帕维尔

只需使用其最后合并的提交ID代替分支名称,分支名称无论如何都只是提交ID的repo-local同义词,加上一些默认值等的本地注释。

merge=$(git log --merges --format=%H --grep="Merge branch '$branchname'" | sed q)

除非您使用快速转发将对主线的提交进行集成(这是发布具有管理意义的合并--no-ff ),否则有人会严重干扰您的合并提交主题。

git diff-tree -r --name-status $merge^ $merge

将向您显示合并更改的所有内容。

我不确定atlassian存放区是否总是在请求合并中创建合并提交。 但是,如果这样做,则可以从历史记录中恢复分支。

您可以搜索历史记录,

git log --pretty=oneline --abbrev-commit --min-parents=2 | grep <some message>

拥有合并提交的SHA(假设74805e6 )后,您可以做很多事情

检查父母是否超过2个,据此从父母中找出已删除的分支

在大多数情况下,合并提交中将有两个父级。

查找一个父母中没有的其他父母中的更改 (可能是您想要的)

git log 74805e6^1..74805e6^2 --name-only --oneline

带回旧的分支

git checkout -b old_deleted_branch 74805e6^2

这将签出合并提交的第二个父级。

两个父母之间的区别

git diff 74805e6^1..74805e6^2

合并的拉取请求仍然存在,单击它会显示受影响文件的列表。 您可能必须安装免费的附加组件“所有提取请求”才能返回到相应的提取请求。

找到RESTful Web服务以获取针对故障单的提交列表:

https://developer.atlassian.com/static/rest/stash/3.7.0/stash-jira-integration-rest.html

即:/rest/jira/1.0/issues/{issueKey}/commits

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM