Git 查看我向分支提交的长列表

Git 查看我向分支提交的长列表,git,Git,我创建了一个主分支,如下所示: git branch -u MyMasterBranch origin/MyMasterBranch git checkout MyMasterBranch git checkout -b myJIRAbranch-1 我从中创建了其他分支,如下所示: git branch -u MyMasterBranch origin/MyMasterBranch git checkout MyMasterBranch git checkout -b myJIRAbra

我创建了一个主分支,如下所示:

git branch -u MyMasterBranch origin/MyMasterBranch
git checkout MyMasterBranch
git checkout -b myJIRAbranch-1
我从中创建了其他分支,如下所示:

git branch -u MyMasterBranch origin/MyMasterBranch
git checkout MyMasterBranch
git checkout -b myJIRAbranch-1
并致力于那些较小的
myJIRAbranch-1
分支,并将它们合并到
MyMasterBranch
git合并--squashmyJIRAbranch-1

现在我想找到我从JIRA分支到MyMasterBranch的那些合并的git提交编号


做那件事的好命令是什么?这给了我一份干净漂亮的报告?

我认为这是不可能的。你让git对合并撒谎,事实就是如此。如果使用
--squash
,Git不会存储任何有关合并的信息


现在基本上不可能找到合并提交。您可以编写一个脚本,进行一些猜测——在master中获取每个差异,并尝试在jira中找到相同的更改。这显然不会产生可靠的结果,但这是我能想到的最好的结果。没有内置的git命令可以做到这一点。

我认为这是不可能的。你让git对合并撒谎,事实就是如此。如果使用
--squash
,Git不会存储任何有关合并的信息


现在基本上不可能找到合并提交。您可以编写一个脚本,进行一些猜测——在master中获取每个差异,并尝试在jira中找到相同的更改。这显然不会产生可靠的结果,但这是我能想到的最好的结果。没有内置的git命令来执行此操作。

正如Chronial所指出的,有关单个提交的信息不能直接检索,除非在说
git merge--squash
时提供了
--log
开关。在后一种情况下,您可能会在压缩的提交消息中看到单个提交的SHA1散列,并且应该能够使用这些散列检索提交

如果不能,我们可以考虑原来的分支丢失了。本网站上的一些问题已经解决了这个问题:


总之,
git reflog
git log-g
是你的朋友。所有的解决方案都假定您仍然可以访问您的开发存储库(单个提交所在的位置),并且提交不会“太旧”(否则,
git gc
可能会不可撤销地清理它们)。

正如Chronial指出的,关于单个提交的信息不能直接检索,除非在说
git merge--squash
时提供了
--log
开关。在后一种情况下,您可能会在压缩的提交消息中看到单个提交的SHA1散列,并且应该能够使用这些散列检索提交

如果不能,我们可以考虑原来的分支丢失了。本网站上的一些问题已经解决了这个问题:


总之,
git reflog
git log-g
是你的朋友。所有解决方案都假定您仍然可以访问您的开发存储库(每个提交都位于其中),并且提交不会“太旧”(否则,
git gc
可能会不可撤销地清理它们)。

您确定吗?我使用了SourceTree GUI工具,它向我展示了git提交编号。虽然我还没有花太多时间,但我注意到了这一点。我假设“git提交编号”是指SHAs?什么是“表演”?我假设您正在谈论这样一个事实,SourceTree正在向您展示您当前正在查看的提交的SHA,这对您毫无帮助。如果只有一个父提交,git不知道合并。你确定吗?我使用了SourceTree GUI工具,它向我展示了git提交编号。虽然我还没有花太多时间,但我注意到了这一点。我假设“git提交编号”是指SHAs?什么是“表演”?我假设您正在谈论这样一个事实,SourceTree正在向您展示您当前正在查看的提交的SHA,这对您毫无帮助。如果只有一个父提交,git不知道合并。如果对历史感兴趣,请不要使用--squash;如果对历史感兴趣,请不要使用--squash