Git:1。列出分支中的所有文件,2.比较来自不同分支的文件

时间:2009-12-15 22:12:04

标签: git

  1. 寻找可以列出提交/分支中所有文件的ls -Rdir/s之类的命令。
  2. 是否有任何命令可以比较来自不同分支的两个文件?

5 个答案:

答案 0 :(得分:116)

  1. git ls-tree -r --name-only <commit>(代替<commit>可以有<branch>)。
    您可能还想使用-t选项列出子目录,然后再下载到子目录中
  2. git diff <branchA>:<fileA> <branchB>:<fileB>
    或者如果您想比较同一个文件git diff <branchA> <branchB> -- <file>

答案 1 :(得分:19)

比较来自不同分支的同一文件:

git diff branch_1..branch_2 file.txt

列出树对象中的所有文件:

git ls-tree -r branch

答案 2 :(得分:16)

列出新分支中添加的所有文件

git diff --name-only branch1 master

答案 3 :(得分:2)

自Git v2.1.0起[08/15/14]

要列出,您可以使用git ls-files递归列出当前索引/工作目录中的所有文件。如果您已经安装了Git并且有可用的手册页,则可以参考Git-SCM Docs / git-ls-files或键入man git-ls-files

它有不错的选择,以不同的方式显示文件,例如cachedstageddeletedmodifiedignoredothers未跟踪的。它还支持匹配模式。还有一个--debug参数,您可以轻松列出creation timemodification timeinode idowner & group idsizeflags文件。


对于两个分支的区别,只需使用其他答案中所述的git diff <branch> <other branch>

答案 4 :(得分:2)

使用git ls-files

列出分支中的文件
  1. 尝试git-scm docu中所述的git ls-files
# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files

有关其他选项,请检查documentation