Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TFS w/Git存储库中查看用户的签入历史记录_Git_Tfs_Version Control_Tfs 2015 - Fatal编程技术网

如何在TFS w/Git存储库中查看用户的签入历史记录

如何在TFS w/Git存储库中查看用户的签入历史记录,git,tfs,version-control,tfs-2015,Git,Tfs,Version Control,Tfs 2015,我有一个奇怪的用例,我正试图找到答案。我们使用直接TFS进行源代码控制,特别是TFS 2015。所有项目都已转换为Git存储库,但它们仍然存储在TFS中的一个单独集合中。我试图做的是查看所有项目中用户的签入历史记录。我已经找到了,但是所有的答案似乎都不适用于Git。甚至在Visual Studio 2017中,它对Git更为友好 以此为例,。如果我把它指向我们存档的TFS集合,它将看到其中的所有项目。但是如果我查看Git集合,它会显示为空 了解Git是如何工作的,我强烈怀疑TFS目前只是用作一种

我有一个奇怪的用例,我正试图找到答案。我们使用直接TFS进行源代码控制,特别是TFS 2015。所有项目都已转换为Git存储库,但它们仍然存储在TFS中的一个单独集合中。我试图做的是查看所有项目中用户的签入历史记录。我已经找到了,但是所有的答案似乎都不适用于Git。甚至在Visual Studio 2017中,它对Git更为友好

以此为例,。如果我把它指向我们存档的TFS集合,它将看到其中的所有项目。但是如果我查看Git集合,它会显示为空


了解Git是如何工作的,我强烈怀疑TFS目前只是用作一种存储机制。当您只查看一个项目时,它可以查找每个项目的签入历史记录,但它是通过执行git.exe或执行类似操作来实现的。所以它实际上不知道每个项目中发生了什么。但我想我还是会问,万一我错了,或者有人对如何做有其他想法。

要查看某个用户提交的提交历史记录,您可以使用以下任何选项

选项1:在TFS网页中进行筛选 在TFS网页的代码中心->历史选项卡->选择分支->高级搜索->选择用户->查找打开Git repo

然后,您将获得用户在某个分支上创建的提交历史记录

注意:由某个用户在网页中创建的筛选器提交历史记录是由分支分隔的。因此,您需要分别选择每个分支。如果要显示某个用户创建的跨分支的所有提交历史记录,可以使用所列选项2的方式

选项2:从本地git回购中查看 如果尚未在本地克隆TFS git repo,则可以先通过git clone进行克隆

然后,在本地git repo中,您可以通过以下任何命令从所有分支获取用户所做的所有提交:

git log --all --author="username"                              #Show commits made by the user for all branches
git log --all --oneline --author="username"                    #Show each commit for one line
git log --oneline --decorate --graph --all --author="username" #Keep branch structure

那太糟糕了,我希望有一个更简单的解决办法。因此,看起来最好的方法是从http[s]://{server}:{port}/tfs/{Collection}/_-api/projects?api version=1.0获取项目列表,克隆每个存储库,使用选项2中的git-log获取每个存储库上用户的所有提交,然后合并结果。