如果打开存储库,则在github中,您将看到一个页面,显示每个子目录和文件的最新提交和时间。
我可以在git中通过命令行执行此操作吗?
最佳答案
在PowerShell中,您可以创建一个像这样的脚本
git ls-tree --name-only HEAD | ForEach-Object {
Write-Host $_ "`t" (git log -1 --format="%cr`t%s" $_)
}
这将循环遍历当前目录中的所有文件,写出文件名,选项卡(反引号“t”),然后输出带有相对日期的
git log
,选项卡和提交消息。样本输出:
subfolder 18 hours ago folder for miscellaneous stuff included
foo.txt 3 days ago foo is important
.gitignore 3 months ago gitignore added
GitHub结果实际上也包含提交者,您也可以通过添加
[%cn]
来实现:Write-Host $_ "`t" (git log -1 --format="%cr`t%s`t[%cn]" $_)
上面的脚本不能很好地处理长文件名,因为它取决于选项卡。这是一个脚本,用于创建格式良好的表,其中各列的宽度完全与所需的宽度相同:
git ls-tree --name-only HEAD | ForEach-Object {
Write-Output ($_ + "|" + (git log -1 --format="%cr|%s" $_))
} | ForEach-Object {
New-Object PSObject -Property @{
Name = $_.Split('|')[0]
Time = $_.Split('|')[1]
Message = $_.Split('|')[2]
}
} | Format-Table -Auto -Property Name, Time, Message
关于git - 在git中显示每个子目录的最新更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17007721/