簡體   English   中英

Git 日志范圍修訂,包括范圍邊緣

[英]Git log range revision including the range edges

我知道這類問題在很多 Q/A 中都有解決,我研究過它們,但實際上我沒有找到獲得我想要的東西的方法。

我正在尋找兩個哈希之間的 git 日志,包括該范圍內使用的哈希日志。

通過查看 SO 中的文檔和其他 Q/A,我發現可以通過以下方式實現:

git log oldest...Newest

但這不返回排除最舊的日志。

例如在這個 repo https://github.com/galniv/jira-git-helper/commits/master

我希望52209d3738f80e49c724502503d6a72c1e24e6bc之間的日志是最舊的,而5456f8cecc5ef5cef5abc1f820a4f044e2153734是最新的。

git log 52209d3738f80e49c724502503d6a72c1e24e6bc...5456f8cecc5ef5cef5abc1f820a4f044e2153734的結果只返回兩個日志而不是 3 :

commit 5456f8cecc5ef5cef5abc1f820a4f044e2153734
Author: Gal Niv <gal.niv@gmail.com>
Date:   Tue Mar 21 15:33:55 2017 -0400

    Update README.md

commit a4c184ecc7fb4c50705c0ac90c94752a31ce7251
Author: Gal Niv <gal.niv@gmail.com>
Date:   Tue Mar 21 11:48:30 2017 -0400

    Remove console.log, display current branch name

如何包含最舊哈希的日志?

如果不涉及合並提交,我會使用〜:

git log old-rev~1..new-rev

這應該足夠了。

利用

git oldest^! newest

兩個點符號old..newest 只是 ^oldest latest 的簡寫。 換句話說,這些提交可以從最新的而不是最舊的到達。

“r1^! 表示法包括提交 r1 但不包括其所有父項。” 來源)。 把這些想法放在一起,最老的^! latest 創建一個包含兩個端點的范圍。

運行git rev-parse oldest^! 幫助我了解這是如何工作的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM