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