我有一个本地存储库,我通过git clone --mirror <ssh-url>
. 然后我使用git remote update --prune
.
此时,HEAD
指向refs/heads/master
然后我转到我的 github 存储库的 Admin 部分,并更改默认分支。我的所有分支都正常更新,但 HEAD 仍然refs/heads/master
是(是的,分支具有不同的哈希值)
我目前的想法是使用git ls-remote
获取HEAD和所有分支的哈希值,然后用一些grep/awk魔术,提取HEAD的哈希值,然后选择具有匹配哈希值的第一个分支,并用于git symbolic-ref HEAD <found branch name>
本地设置。
但是有没有更简单的方法来获取远程HEAD
分支名称(以可以在脚本中更新的方式)?
是的,有一个命令可以做到这一点:
git remote set-head origin -a
Run Code Online (Sandbox Code Playgroud)
从git help remote
:
使用 -a,查询远程以确定其 HEAD,然后将符号引用 refs/remotes/<name>/HEAD 设置为同一分支。例如,如果远程 HEAD 指向 next,“git remote set-head origin -a”会将符号引用 refs/remotes/origin/HEAD 设置为 refs/remotes/origin/next。仅当 refs/remotes/origin/next 已存在时这才有效;如果没有,则必须先获取它。
归档时间: |
|
查看次数: |
782 次 |
最近记录: |