简体   繁体   English

列出Git存储库中存在的所有文件

[英]List all the files that ever existed in a Git repository

您是否有一种干净的方法来列出指定分支中存在的所有文件?

This is a simplified variation of Strager's solution : 这是Strager 解决方案的简化版本:

git log --pretty=format: --name-status | cut -f2- | sort -u

Edit: Thanks to Jakub for teaching me a bit more in the comments, this version has a shorter pipeline and gives git more opportunity to get things right. 编辑:感谢Jakub在评论中教我更多,这个版本有一个更短的管道,让git有更多机会让事情正确。

git log --pretty=format: --name-only --diff-filter=A | sort -u

这对于检查repo中是否存在文件名而不仅仅是当前分支是正确的。

git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar

You can run git-log --name-status , which echoes something like: 你可以运行git-log --name-status ,它回应如下:

commit afdbbaf52ab24ef7ce1daaf75f3aaf18c4d2fee0
Author: Your Name <your@email.com>
Date:   Tue Aug 12 13:28:34 2008 -0700

    Added test file.

A       test

Then extract files added: 然后提取文件:

git-log --name-status | sed -ne 's/^A[^u]//p' | sort -u

Here is two useful alias: FindFile ff and FindFilewithCopies ffc : 这是两个有用的别名:FindFile ff和FindFilewithCopies ffc

# Find if one file ever had into repository
ff = "!git log --pretty=format: --name-status --all -M -B | sort -u | grep $1   #"
# The same as above but showing copied files
ffc = "!git log --pretty=format: --name-status --all -C -M -B | sort -u | grep $1 #"

You get information about file names and operations with them. 您可以获得有关文件名和操作的信息。

Sample use: 样品用途:

$ git ff create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php

$ git ffc create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
C052    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_11_210246_create_boletin_nosend_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php

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

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