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