我在GitHub上拖了一個有幾個福克的項目,但忘記了它是哪個福克。


当前回答

要得到答案:

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 ) 之前没有文档。

其他回答

使用 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 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 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 提到这一点。

要补充其他答案:如果远程因某种原因已被更改,因此不反映原来的起源,则重组中的第一个输入(即由命令 git reflog 显示的最后一个输入)应指明重组原来的位置。

吉。

$ git reflog | tail -n 1
f34be46 HEAD@{0}: clone: from https://github.com/git/git
$

(请记住,返回可以被清理,所以这不保证工作。