您是否有一种干净的方式来列出指定分支中存在的所有文件?列出Git存储库中存在的所有文件
85
A
回答
108
这是Strager的solution的简化变化:
git log --pretty=format: --name-status | cut -f2- | sort -u
编辑:谢谢对Jakub来说,在评论中教会我多一点,这个版本有一个更短的管道,让git更多的机会让事情正确。
git log --pretty=format: --name-only --diff-filter=A | sort -u
1
您可以运行git-log --name-status
,呼应类似:
commit afdbbaf52ab24ef7ce1daaf75f3aaf18c4d2fee0
Author: Your Name <[email protected]>
Date: Tue Aug 12 13:28:34 2008 -0700
Added test file.
A test
然后将解压后的文件中加入:
git-log --name-status | sed -ne 's/^A[^u]//p' | sort -u
10
这确实是正确的检查,如果文件名是永远存在的不只是在当前分支的回购。
git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar
0
下面是两个有用的别名:的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 #"
你得到有关文件的名称和操作与它们的信息。
使用示例:
$ 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
相关问题
- 1. 如何在git存储库中列出所有已删除的文件?
- 2. 列出由git-daemon提供服务的所有存储库
- 3. 忽略所有存储库中git文件的更改将它保存在存储库中
- 4. Git存储库内的Git存储库
- 5. 如何列出所有存储库?
- 6. 拉所有的git存储库分支
- 7. git存储库忽略所有的.dlls
- 8. 通过git将所有文件复制到中央存储库
- 9. SVN:列出存储库中所有项目的所有分支
- 10. 如何从GIT存储库中递归检出所有文件名的发生?
- 11. svnkit,列出SVN存储库的所有文件,而不检出文件
- 12. 如何在Mercurial(hg)中列出存储库中的所有文件?
- 13. 如何列出存储库中的所有可用软件包
- 14. git - 从存储库中删除文件
- 15. 在git存储器中列出修改过的文件名
- 16. GitHub从raw.githubusercontent获取存储库中所有文件的列表?
- 17. 使用python列出Amazon S3存储桶中的所有文件
- 18. 我可以在其子文件夹已经是git存储库的文件夹中初始化git存储库
- 19. 子文件夹的Git存储库
- 20. Artifactory在设置生成中未列出所有存储库
- 21. GIT:在GIT Bash中更新存储库,GIT GUI仍显示旧的存储库
- 22. git:镜像存在于远程git服务器上的所有存储库?
- 23. 列出克隆在一个文件夹下的所有Mercurial存储库
- 24. 在git仓库中有效存储二进制文件
- 25. 如何从现有git存储库中的文件夹创建新的git存储库?
- 26. 虽然全局忽略,但git会在新存储库中列出新文件
- 27. 如何列出CVS存储库中的所有模块?
- 28. 如何在我的存储库中将最新的文件保存在另一个git存储库中?
- 29. “单个文件”git存储库格式?
- 30. Cross Git存储库配置文件
@Dustlin:添加--diff过滤= A选项(只列出添加的文件)。当前版本(没有sed过滤仅添加文件)将失败,如果您启用了重命名检测并在历史记录中重命名。我认为你可以使用--name-only而不是--name-status并从管道中删除'cut -f2-'。 – 2009-02-13 12:39:44