在 Git 中,我们可以使用命令 git ls-remote [remote]
来现实服务器上有哪些引用。虽然这个命令在日常生活中基本用不到,但是在拉取 合并请求(pull request) 时很有用。
命令详解
在 git ls-remote [remote]
中 remote
是远程仓库。
你可以借助 引用规范 来简写:
git ls-remote origin
写可以完整的整个 URI :
git ls-remote https://github.com/schacon/blink
该命令会显示远程版本库里所有的分支,标签和其他引用
$ git ls-remote https://github.com/schacon/blink
10d539600d86723087810ec636870a504f4fee4d HEAD
10d539600d86723087810ec636870a504f4fee4d refs/heads/master
6a83107c62950be9453aac297bb0193fd743cd6e refs/pull/1/head
afe83c2d1a70674c9505cc1d8b7d380d5e076ed3 refs/pull/1/merge
3c8d735ee16296c242be7a9742ebfbc2665adec1 refs/pull/2/head
15c9f4f80973a2758462ab2066b6ad9fe8dcf03d refs/pull/2/merge
a5a7751a33b7e86c5e9bb07b26001bb17d775d1a refs/pull/4/head
31a45fc257e8433c8d8804e3e848cf61c9d3166c refs/pull/4/merge
refs/pull/<pr#>/head
: 该提交记录与合并请求中的最后一个提交记录相同refs/pull/<pr#>/merge
: 在网站上点了 “merge” 按钮对应的提交拉取方法
你可以直接抓取该引用: ``` $ git fetch origin refs/pull/1/head From https://github.com/libgit2/libgit2- branch refs/pull/958/head -> FETCH_HEAD
也可以修改 `.git/config` 文件中来一键拉取:<br />_.git/config_
[remote “origin”] url = https://github.com/libgit2/libgit2.git fetch = +refs/heads/:refs/remotes/origin/ fetch = +refs/pull//head:refs/remotes/origin/pr/ <== 添加这一行
然后直接拉取:
$ git fetch
…
- [new ref] refs/pull/1/head -> origin/pr/1
- [new ref] refs/pull/2/head -> origin/pr/2
- [new ref] refs/pull/4/head -> origin/pr/4
…
```