Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
Git 如何检查文件在另一个分支上是否有前进进度?_Git_Branch_Git Merge - Fatal编程技术网

Git 如何检查文件在另一个分支上是否有前进进度?

Git 如何检查文件在另一个分支上是否有前进进度?,git,branch,git-merge,Git,Branch,Git Merge,我们的团队正在使用git进行版本控制 当为每个团队成员分配一个编程任务时, 他们从我们的dev分支机构转移到自己的issue-#分支机构 由于许多未合并的发行分支正在进行中, 我如何评估特定文件是否有向前的进展,以及在哪些分支上 例如, 我想签出dev分支, 并运行一个命令,该命令给出的结果类似于: dev/issue-34 (20 insertions / 5 deletions) dev/issue-71 (60 deletions) 对于特定的查询文件 一个命令,可以过滤数百个分支

我们的团队正在使用
git
进行版本控制

当为每个团队成员分配一个编程任务时,
他们从我们的
dev
分支机构转移到自己的
issue-#
分支机构

由于许多未合并的发行分支正在进行中,
我如何评估特定文件是否有向前的进展,以及在哪些分支上

例如,
我想签出
dev
分支,
并运行一个命令,该命令给出的结果类似于:

dev/issue-34 (20 insertions / 5 deletions)  
dev/issue-71 (60 deletions)
对于特定的查询文件



一个命令,可以过滤数百个分支,并通知我到目前为止谁编辑了一个paritcular文件。

作为基础,您可以使用

git diff--numstat dev origin/issue-34


要获取文件列表,其中包含
dev
和给定问题分支之间的新/删除行数。

可以使用

git diff--numstat dev origin/issue-34


要获取文件列表,其中包含
dev
和给定问题分支之间新的/删除的行数。

您需要使用
git for each ref
命令在感兴趣的分支之间循环,然后在任何更改上转储一个diff stat

在下面的脚本中,它假定您已签出到dev分支,您有一个远程源,它从中获取分支,并且您位于根目录中,并且正在传递感兴趣文件的完整路径和名称。它也缺少错误检查,但应该具有您需要的基本功能

#!/bin/sh
# $1 is the name of the file we are interested in 
baseSha=$(git rev-parse HEAD:$1)

git for-each-ref  --format="%(refname)" refs/remotes/origin/dev/* | \
while read dev_branch
do
   echo "Checking ${dev_branch}"
   branchSha=$(git rev-parse ${dev_branch}:$1)
   if [ ${baseSha} != ${branchSha} ]
   then
      git diff --stat HEAD..${dev_branch} -- $1
   else 
      echo "No changes"
   fi
done 

您可能希望对每个ref命令使用
git循环遍历感兴趣的分支,然后在任何更改上转储一个diff stat

在下面的脚本中,它假定您已签出到dev分支,您有一个远程源,它从中获取分支,并且您位于根目录中,并且正在传递感兴趣文件的完整路径和名称。它也缺少错误检查,但应该具有您需要的基本功能

#!/bin/sh
# $1 is the name of the file we are interested in 
baseSha=$(git rev-parse HEAD:$1)

git for-each-ref  --format="%(refname)" refs/remotes/origin/dev/* | \
while read dev_branch
do
   echo "Checking ${dev_branch}"
   branchSha=$(git rev-parse ${dev_branch}:$1)
   if [ ${baseSha} != ${branchSha} ]
   then
      git diff --stat HEAD..${dev_branch} -- $1
   else 
      echo "No changes"
   fi
done