我从GitHub上拉取了一个有几个分支的项目,但忘记了是哪个分支。如何确定我拉取的是哪个分支?
我从GitHub上拉取了一个有几个分支的项目,但忘记了是哪个分支。如何确定我拉取的是哪个分支?
仅获取远程URL:
git config --get remote.origin.url
如果您需要完整的输出,并且您所在的网络可以到达远程存储库所在的远程仓库:git remote show origin
使用git clone
(从GitHub或任何源存储库)时,克隆的来源默认名称为“origin”。 使用git remote show
将显示有关此远程名称的信息。 前几行应该显示:
C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
Fetch URL: git@github.com:jaredpar/VsVim.git
Push URL: git@github.com:jaredpar/VsVim.git
HEAD branch: master
Remote branches:
如果您想在脚本中使用该值,您将使用此答案中列出的第一个命令。
git remote show origin
(可选地提供@Casey提供的-n标志),或者像@Montaro和@rodel建议的那样使用git remote -v
。 - Amazingant´~/.gitconfig
是全局的,适用于所有的 git
仓库,而这里的配置来自本地配置文件,通常在 .git/config
中(但对于 git 子模块,答案会有些困难)。请注意,strace git config --get remote.origin.url
可以帮助你。 - Tino这个只提供URL地址,方便用于脚本编写:
git config --get remote.origin.url
git remote show origin
只显示“conq: repository does not exist.”),它也可以正常工作。 - apfelboxurl.<base>.insteadOf
。请查看我的回答——git有一个针对此目的的命令。 - Carl Sustergit remote set-url origin http://.....
**
或者,查看此处的更多说明:[https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories]。
并且,如果这可能是许多人想要做的事情,请点赞此评论。 - Kevin J. Ricegit remote -v
origin
)。 - CPHPython获取答案的方法:
git ls-remote --get-url [REMOTE]
这比阅读配置要更好,可参考git-ls-remote
的手册页面:
--get-url
展开给定远程仓库的URL时将考虑任何
"url.<base>.insteadOf"
配置设置(请参见git-config(1)
),并且在不与远程通信的情况下退出。
自Git 2.7(2015年1月5日发布)起,您可以使用更一致的解决方案,使用git remote:
git remote get-url origin
(
git remote set-url origin <newurl>
的好用的垂饰)
参见 Ben Boeckel (mathstuf
) 于2015年9月16日提交的 提交记录 96f78d3
(由Junio C Hamano -- gitster
--于2015年10月05日在 提交记录 e437cbd 中合并):
remote: 添加 get-url 子命令
扩展 insteadOf
是 ls-remote --url
的一部分,而没有方法来扩展 pushInsteadOf
。
添加 get-url
子命令以查询两者以及获取所有配置的URL的方式。
get-url:
检索远程的URL。
insteadOf
和 pushInsteadOf
的配置在此处被展开。
默认情况下,仅列出第一个URL。
- 使用 '
--push
',将查询推送URL而不是获取URL。
- 使用 '
--all
',将列出远程所有的URL。
在 git 2.7 之前,你可以使用:
git config --get remote.[REMOTE].url
git ls-remote --get-url [REMOTE]
git remote show [REMOTE]
通过官方的 Linux 软件仓库尝试使用它:
$ git config --get remote.origin.url
https://github.com/torvalds/linux.git
和
$ git ls-remote --get-url
https://github.com/torvalds/linux.git
$ git remote -v
origin https://github.com/torvalds/linux.git (fetch)
origin https://github.com/torvalds/linux.git (push)
$ git remote show origin
* remote origin
Fetch URL: https://github.com/torvalds/linux.git
Push URL: https://github.com/torvalds/linux.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
git config --get remote.origin.url
命令用于检索与 git remote add ...
或 git remote set-url ...
命令设置的原始 URL 相同的 URL。而 git ls-remote --get-url origin
命令用于检索用于访问远程仓库的实际 URL,这可能会在存在 git config --global url.XXX.insteadOf YYY
时不同。因此,两个命令的输出可能不同。另请注意,git ls-remote --get-url
(不包括 origin
)不一定检索 origin
,而是显示被跟踪的上游分支,因此在分离 HEAD 状态下将无法检索到该命令的输出。 - Tino对我来说,这是更轻松的方式(打字更少):
git remote -v
输出:
origin https://github.com/torvalds/linux.git (fetch)
origin https://github.com/torvalds/linux.git (push)
实际上,我已将其转换为一个称为s
的alias
,它执行以下操作:
git remote -v
git status
你可以通过以下方式将其添加到你的个人资料中:
alias s='git remote -v && git status'
如果您没有更改过,我认为您可以在.git/config
和remote["origin"]
下找到它。
简短回答:
$ git remote show -n origin
$ git config --get remote.origin.url
一些信息:
$ git remote -v
将打印所有远程库(不是您想要的)。 您只需要 origin,对吧?$ git remote show origin
更好,仅显示 origin
但速度太慢(在git版本1.8.1.msysgit.1上测试过)。我最终使用了:$ git remote show -n origin
,这似乎是最快的。使用-n
,它将不会获取远程头(也称为分支)。 您不需要那种类型的信息,对吧?
http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
你可以对所有三个版本应用| grep -i fetch
命令来仅显示提取URL。$ git config --get remote.origin.url
感谢@Jefromi指出这一点。
我总是记不住Git命令的所有参数,所以我只是在~/.gitconfig
文件中设置了一个别名,这样更符合我的理解,我就能记得住它,并且少打一些字:
[alias]
url = ls-remote --get-url
重新加载终端后,然后只需输入以下命令即可:
After reloading the terminal, you can then just type:
> git url
以下是我经常使用的一些:
[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags
我还强烈推荐 git-extras,它有一个 git info
命令,可以提供更详细的关于远程和本地分支的信息。
bash
命令非常自然地融合在一起。当在 bash
和 git
之间切换时,我可以看到这会造成最少的思维阻力。太棒了! - seeker
git remote get-url origin
命令。请参见我的回答。 - VonCgit remote get-url origin
对我不起作用,可能已经过时了?但git remote show origin
可以用。 - Klikgit remote -v
会给你很多信息,包括这个。 - Thorbjørn Ravn Andersengit remote get-url origin --push
命令运行正常,显然没有被弃用,并且提供了简洁明了的信息(相比之下,git remote show origin
很冗长),详见git help remote
。 - NeilG