git 多个遥控器的分支
git branch for multiple remotes
当 运行 git branch -r
我看到我的远程存储库上的分支。
有没有办法在同一个工作目录下查看多个存储库的分支?
我的目标是创建一个文件,列出几个存储库中的所有分支,如下所示:
repo1:master,dev,qa,fy-2473
repo2:master,dev,fy-1128,staging
repo3:master,fy-1272,staging
依此类推。
我有这个以正确的方式打印分支:
git branch -r | awk -F' +|/' -v ORS=, '{if(!="HEAD") print }' >> repolist.txt
我只需要让此功能与几个存储库一起使用,而不必为此单一目的克隆每个存储库。
谢谢
您可以使用 git remote add name url 将存储库添加到同一工作目录,然后您将在 git branch -r
.
中看到所有存储库
例如:
git remote add repo1 http://github.com/example/foo.git
git remote add repo2 http://bitbucket.com/example/bar.git
git fetch --all
git branch -r
将列出:
repo1/master
repo1/dev
repo2/master
repo2/featureXYZ
在你运行git remote add
添加所有远程仓库,运行git fetch
获取/更新远程仓库信息后,git branch -a
会显示所有分支机构,包括远程和本地分支机构。对于远程分支,它将以格式显示为:
remotes/{remote_name}/{branch_name}
使用 git remote add
将您的存储库作为遥控器添加到您的本地存储库,然后 git fetch --all
它们并调整您的 awk 命令以产生您想要的结果。
此命令将产生您期望的输出
git branch -r | awk '
# split remote and branch
{
remote = substr(, 0, index(, "/") - 1)
branch = substr(, index(, "/") + 1)
}
# eliminate HEAD reference
branch == "HEAD" { next }
# new remote found
remote != lastRemote {
# output remote name
printf "%s%s:", lastRemote ? "\n" : "", remote
lastRemote = remote
# do not output next comma
firstBranch = 1
}
# output comma between branches
!firstBranch { printf "," }
firstBranch { firstBranch = 0 }
# output branch name
{ printf branch }
# final linebreak
END { print "" }
'
或单行无评论
git branch -r | awk '{ remote = substr(, 0, index(, "/") - 1); branch = substr(, index(, "/") + 1) } branch == "HEAD" { next } remote != lastRemote { printf "%s%s:", lastRemote ? "\n" : "", remote; lastRemote = remote; firstBranch = 1; } !firstBranch { printf "," } firstBranch { firstBranch = 0 } { printf branch } END { print "" }'
当 运行 git branch -r
我看到我的远程存储库上的分支。
有没有办法在同一个工作目录下查看多个存储库的分支?
我的目标是创建一个文件,列出几个存储库中的所有分支,如下所示:
repo1:master,dev,qa,fy-2473
repo2:master,dev,fy-1128,staging
repo3:master,fy-1272,staging
依此类推。 我有这个以正确的方式打印分支:
git branch -r | awk -F' +|/' -v ORS=, '{if(!="HEAD") print }' >> repolist.txt
我只需要让此功能与几个存储库一起使用,而不必为此单一目的克隆每个存储库。 谢谢
您可以使用 git remote add name url 将存储库添加到同一工作目录,然后您将在 git branch -r
.
例如:
git remote add repo1 http://github.com/example/foo.git
git remote add repo2 http://bitbucket.com/example/bar.git
git fetch --all
git branch -r
将列出:
repo1/master
repo1/dev
repo2/master
repo2/featureXYZ
在你运行git remote add
添加所有远程仓库,运行git fetch
获取/更新远程仓库信息后,git branch -a
会显示所有分支机构,包括远程和本地分支机构。对于远程分支,它将以格式显示为:
remotes/{remote_name}/{branch_name}
使用 git remote add
将您的存储库作为遥控器添加到您的本地存储库,然后 git fetch --all
它们并调整您的 awk 命令以产生您想要的结果。
此命令将产生您期望的输出
git branch -r | awk '
# split remote and branch
{
remote = substr(, 0, index(, "/") - 1)
branch = substr(, index(, "/") + 1)
}
# eliminate HEAD reference
branch == "HEAD" { next }
# new remote found
remote != lastRemote {
# output remote name
printf "%s%s:", lastRemote ? "\n" : "", remote
lastRemote = remote
# do not output next comma
firstBranch = 1
}
# output comma between branches
!firstBranch { printf "," }
firstBranch { firstBranch = 0 }
# output branch name
{ printf branch }
# final linebreak
END { print "" }
'
或单行无评论
git branch -r | awk '{ remote = substr(, 0, index(, "/") - 1); branch = substr(, index(, "/") + 1) } branch == "HEAD" { next } remote != lastRemote { printf "%s%s:", lastRemote ? "\n" : "", remote; lastRemote = remote; firstBranch = 1; } !firstBranch { printf "," } firstBranch { firstBranch = 0 } { printf branch } END { print "" }'