Azure DevOps 远程分支在一个存储库中不可见
Azure DevOps remote branches are not visible in one repository
我做的动作列表和结果:
本地我有一个 master
分支,我在远程有它。
我在本地创建了一个 dev/test
分支
我推送到远程
在 Azure DevOps 网站上,我可以看到该分支出现在“我的”选项卡的分支中。
如果我尝试从 Visual Studio 或 git bash 获取并列出分支,只有 master
分支可见。
$ git branch -r
origin/HEAD -> origin/master
origin/master
我发现显示所有远程分支的唯一方法是:
$ git ls-remote --heads origin
08e2d2e3d332b607cef7cc85068b7eb1459d6d82 refs/heads/dev/test
04465a9f213757430aea00b77c4841c2e35ec8dc refs/heads/master
问题是我无法 checkout/pull/merge 我看不到的分支。
我尝试创建一个新的存储库并执行相同的操作,一切都像往常一样可见,而且应该如此。所以这个问题只与特定的存储库有关。
我的问题是,我应该检查什么?如何让远程分支可见?
我尝试过的操作:
git fetch
什么都不做。
$ git branch -vv
* dev/test ada4e0e commmitMessage
master ada4e0e [origin/master] commmitMessage
它没有显示远程跟踪,我尝试添加它
$ git branch -u origin/dev/test
error: the requested upstream branch 'origin/dev/test' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
所以我按照建议做了
$ git push -u
Everything up-to-date
Branch 'dev/test' set up to track remote branch 'dev/test' from 'origin'.
并再次检查
$ git fetch
From https://dev.azure.com/company/repo/_git/repo
* branch dev/test -> FETCH_HEAD
$ git branch -vv
* dev/test ada4e0e commmitMessage
master ada4e0e [origin/master] commmitMessage
$ git branch -r
origin/HEAD -> origin/master
origin/master
我找到了解决办法。存储库是通过 HTTPS 连接的。
切换到 SSH 解决了所有问题。
中的分步说明
步骤 1
在 Bash 中:
$ ssh-keygen -C "你的@email.com".
步骤 2
将 public 密钥添加到 Azure DevOps。
步骤 3
将生成的私钥文件移动到 C:\Users\{username}\.ssh
.
在同一位置用
创建 config
文件
Host ssh.dev.azure.com
IdentityFile ~/.ssh/privateKey
IdentitiesOnly yes
步骤 4
使用 SSH link.
克隆
完成!
我做的动作列表和结果:
本地我有一个
master
分支,我在远程有它。我在本地创建了一个
dev/test
分支我推送到远程
在 Azure DevOps 网站上,我可以看到该分支出现在“我的”选项卡的分支中。
如果我尝试从 Visual Studio 或 git bash 获取并列出分支,只有
master
分支可见。$ git branch -r origin/HEAD -> origin/master origin/master
我发现显示所有远程分支的唯一方法是:
$ git ls-remote --heads origin
08e2d2e3d332b607cef7cc85068b7eb1459d6d82 refs/heads/dev/test
04465a9f213757430aea00b77c4841c2e35ec8dc refs/heads/master
问题是我无法 checkout/pull/merge 我看不到的分支。
我尝试创建一个新的存储库并执行相同的操作,一切都像往常一样可见,而且应该如此。所以这个问题只与特定的存储库有关。
我的问题是,我应该检查什么?如何让远程分支可见?
我尝试过的操作:
git fetch
什么都不做。
$ git branch -vv
* dev/test ada4e0e commmitMessage
master ada4e0e [origin/master] commmitMessage
它没有显示远程跟踪,我尝试添加它
$ git branch -u origin/dev/test
error: the requested upstream branch 'origin/dev/test' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
所以我按照建议做了
$ git push -u
Everything up-to-date
Branch 'dev/test' set up to track remote branch 'dev/test' from 'origin'.
并再次检查
$ git fetch
From https://dev.azure.com/company/repo/_git/repo
* branch dev/test -> FETCH_HEAD
$ git branch -vv
* dev/test ada4e0e commmitMessage
master ada4e0e [origin/master] commmitMessage
$ git branch -r
origin/HEAD -> origin/master
origin/master
我找到了解决办法。存储库是通过 HTTPS 连接的。
切换到 SSH 解决了所有问题。
步骤 1
在 Bash 中:
$ ssh-keygen -C "你的@email.com".
步骤 2
将 public 密钥添加到 Azure DevOps。
步骤 3
将生成的私钥文件移动到 C:\Users\{username}\.ssh
.
在同一位置用
config
文件
Host ssh.dev.azure.com
IdentityFile ~/.ssh/privateKey
IdentitiesOnly yes
步骤 4
使用 SSH link.
完成!