我在GitHub上拖了一個有幾個福克的項目,但忘記了它是哪個福克。
只需获取远程URL:
git config --get remote.origin.url
如果您需要完整的输出,并且您正在网络上,可以到达原产地的远程雷波:
git remote show origin
当使用 git clone (从 GitHub,或任何源存储器为该材料) 的默认名称为 clone 的来源是“起源”。使用 git 远程显示将显示有关这个远程名称的信息。
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 -n origin
或者,一个纯粹的快速脚本的替代品:
$ git config --get remote.origin.url
一些信息:
你想要起源正确吗? $ git 远程显示起源更好,只显示起源,但需要太长时间(测试在 git 版本 1.8.1.msysgit.1)。
我结束了: $ git 远程显示 -n 起源,似乎是最快的. 与 -n 它不会捕捉远程头(AKA 分支)。 你不需要这种类型的信息,对吗?
http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
您可以在所有 3 个版本中使用 <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk> <unk>
如果你需要纯粹的速度,那么使用:
$ git config --get remote.origin.url
谢谢 @Jefromi 提到这一点。
上流的远程可能不会被称为“起源”,所以这里有一个变量:
remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename
或:
basename $(git config --get remote.$(git config --get branch.master.remote).url) .git
对于更有用的变量,有:
$ git config -l
要得到答案:
git ls-remote --get-url [REMOTE]
這比閱讀配置更好;引用 git-ls-remote 的男性頁面:
--get-url 将该远程存储库的 URL 扩展,考虑到任何“url.<base>.insteadOf”配置设置(见 git-config(1)),并将其输出而不与远程存储库进行谈话。
正如 @Jefromi 指出的那样,此选项在 v1.7.5 中添加,并且直到 v1.7.12.2 (2012-09 ) 之前没有文档。
要总结一下,至少有四种方式:
使用官方 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)
获取原产地的 IP 地址/主机名称
对于 ssh:// 存储库:
git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"
關於 git:// repositories:
git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"
git remote get-url origin
(Git 远程设置 URL 起源 <newurl>)
See commit 96f78d3 (2015 年 9 月 16 日) by Ben Boeckel (mathstuf). (Merged by Junio C Hamano -- gitster -- in commit e437cbd, 2015 年 10 月 5 日):
远程: 添加 Get-url 子命令 扩展代替Of 是 ls-remote --url 的部分,并且没有办法扩展 pushInsteadOf 也。
get-url:
将 URL 转移到远程. 设置为替代Of 和 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]
要补充其他答案:如果远程因某种原因已被更改,因此不反映原来的起源,则重组中的第一个输入(即由命令 git reflog 显示的最后一个输入)应指明重组原来的位置。
吉。
$ git reflog | tail -n 1
f34be46 HEAD@{0}: clone: from https://github.com/git/git
$
(请记住,返回可以被清理,所以这不保证工作。
使用 git 远程显示起源,您必须在项目目录中,但如果您想从其他地方确定 URL 您可以使用:
cat <path2project>/.git/config | grep url
如果您需要这个命令经常,您可以在 MacOS 中的.bashrc 或.bash_profile 中定义一个 alias。
alias giturl='cat ./.git/config | grep url'
因此,您只需要在 Git 根文件夹中呼叫 giturl 以便简单地获得其 URL。
如果你延伸这个 alias 如此
alias giturl='cat .git/config | grep -i url | cut -d'=' -f 2'
你只得到平坦的URL没有先前的
“URL”
在
url=http://example.com/repo.git
您在使用中获得更多机会:
例子
在 Mac 上,您可以打开 $(giturl) 以在默认浏览器中打开 URL。
或Chrome $(giturl)在Linux上使用Chrome浏览器打开它。
如果你不知道一个分支的上流远程的名称,你可以首先通过检查当前分支的上流分支名称来查看它。
git rev-parse --symbolic-full-name --abbrev-ref @{upstream}
这表明,上流的分支是当前分支的来源,这可以被分配,以获得远程名称如下:
git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1
现在拿到它,并将其粘贴到 git ls-remote,你会得到上流的远程的URL,这是当前分支的来源:
git ls-remote --get-url \
$(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1)
现在应该注意到,这并不一定与源的远程存储库相同,但在许多情况下,这将是足够的。
Git URL 将位于 Git 配置文件中,值相当于关键 URL。
对于 Mac 和 Linux,请使用下面的命令:
cd project_dir
cat .git/config | grep url | awk '{print $3}'
在 Windows 中,在任何文本编辑器中打开下面的文件,并找到关键URL的值。
project_dir/.git/config
注意: 即使您离线或远程 Git 服务器已被删除,这也将工作。
#!/bin/bash
git-remote-url() {
local rmt=$1; shift || { printf "Usage: git-remote-url [REMOTE]\n" >&2; return 1; }
local url
if ! git config --get remote.${rmt}.url &>/dev/null; then
printf "%s\n" "Error: not a valid remote name" && return 1
# Verify remote using 'git remote -v' command
fi
url=`git config --get remote.${rmt}.url`
# Parse remote if local clone used SSH checkout
[[ "$url" == git@* ]] \
&& { url="https://github.com/${url##*:}" >&2; }; \
{ url="${url%%.git}" >&2; };
printf "%s\n" "$url"
}
使用:
# Either launch a new terminal and copy `git-remote-url` into the current shell process,
# or create a shell script and add it to the PATH to enable command invocation with bash.
# Create a local clone of your repo with SSH, or HTTPS
git clone git@github.com:your-username/your-repository.git
cd your-repository
git-remote-url origin
出口:
https://github.com/your-username/your-repository
我永远不会记住所有参数到 Git 命令,所以我只是在 ~/.gitconfig 文件中插入一个标志,这对我来说更有意义,所以我可以记住它,结果写得更少:
[alias]
url = ls-remote --get-url
重新加载终端后,您只能输入:
> git url
以下是我经常使用的一些:
[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags
我也强烈推荐 git-extra 具有 git info 命令,提供远程和本地分支的更多详细信息。
对于我来说,这就是最简单的方式(少打字):
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 文件夹的位置:
git config --get remote.origin.url
如果你连接到一个网络,
git remote show origin
它将向您显示一个本地Git存储库原来被克隆的URL。
我更喜欢这个,因为更容易记住:
git config -l
它将列出所有有用的信息,如:
user.name=Your Name
user.email=your.name@notexisting.com
core.autocrlf=input
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/mapstruct/mapstruct-examples
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
你用SSH克隆来克隆你的存储库。
git config --get remote.origin.url
git@gitlab.com:company/product/production.git
但是,您想要在浏览器中打开或分享一个 HTTP URL:
git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'
https://gitlab.com/company/product/production.git
GitHub 或 GitLab 不重要。
alias git-repo="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g'"
alias git-pr="git config --get remote.origin.url | sed -e 's/:/\//g'| sed -e 's/ssh\/\/\///g'| sed -e 's/git@/https:\/\//g' | sed 's/....$//' | sed -ne 's/$/\/pulls &/p'"
在主目录中将此表达式添加到.zshrc 或.bashrc 文件中。
在此之后,您可以使用如
git-repo
git-pr
只需远程 URL:
git config --get remote.origin.url
要了解有关特定远程的详细信息,请使用
git remote show [remote-name] command
查看远程URL:
git remote show origin
要查看您在哪里放置.git 文件夹:
git config --get remote.origin.url
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 新Github项目发布通知?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?