programing

로컬 Git 저장소가 원래 복제된 URL을 확인하는 방법

powerit 2023. 5. 13. 11:01
반응형

로컬 Git 저장소가 원래 복제된 URL을 확인하는 방법

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:

스크립트에서 값을 사용하려면 이 답변에 나열된 첫 번째 명령을 사용합니다.

이것은 스크립트 목적으로 유용한 URL만 제공합니다.

git config --get remote.origin.url

원격의 가져오기/푸시 URL이 모두 인쇄됩니다.

git remote -v

답을 얻기 위해:

git ls-remote --get-url [REMOTE]

이는 구성을 읽는 것보다 낫습니다. 다음에 대한 설명서를 참조하십시오.

--get-url

임의의 다음고을지원저격 URL을 합니다."url.<base>.insteadOf"setting ( )git-config(1)리모컨과 대화하지 않고 종료합니다.

@Jefromi가 지적했듯이 이 옵션은 v1.7.5에서 추가되었으며 v1.7.12.2(2012-09)까지 문서화되지 않았습니다.

21월을하면 Git 2.7(2015년 1월 5일 출시)을 할 수 .git remote:

git remote get-url origin

((의) git remote set-url origin <newurl>)

Ben Beckel()mathstuf의 커밋 96f78d3(2015년 9월 16일)을 참조하십시오.
(Merged by Junio C Hamano -- gitster -- in commit e437cbd, 05 Oct 2015):

원격: 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 remote -v

출력:

origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

사실, 나는 그것을 가지고 있습니다.alias라고 하는s다음을 수행합니다.

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

일부 정보:

  1. $ git remote -v원하는 원격이 아닌 모든 원격이 인쇄됩니다.원산지를 원하시는 거죠?
  2. $ git remote show origin낫습니다, 훨씬더좋요, 만쇼만 됩니다.origin하지만 시간이 너무 오래 걸립니다(git 버전 1.8.1.msysgit.1에 따라 다름).

저는 다음과 같이 끝냈습니다.$ git remote show -n origin가장 빠른 것 같습니다.와 함께-n원격 헤드(AKA 분기)를 가져오지 않습니다.그런 정보는 필요 없겠죠?

http://www.kernel.org/pub/ /software/scm/git/sm/git/git-remote.mote

신청할 수 있습니다| grep -i fetch하도록 세 됩니다.

순수 속도가 필요한 경우 다음을 사용합니다.

$ git config --get remote.origin.url

그것을 지적해 준 @Jefromi에게 감사합니다.

기억하기 쉽기 때문에 저는 이것을 선호합니다.

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

Git 명령에 대한 모든 매개 변수를 기억할 수 없기 때문에, 나는 단지 에일리어스를 입력했습니다.~/.gitconfig내가 기억할 수 있도록 더 말이 되는 파일로 타이핑을 줄일 수 있습니다.

[alias]
url = ls-remote --get-url

터미널을 다시 로드한 후 다음을 입력하면 됩니다.

> git url

다음은 제가 자주 사용하는 몇 가지 더 있습니다.

[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags

나는 또한 그것이 있는 깃 엑스트라를 강력히 추천합니다.git info 원격 및 로컬 분기에 대한 훨씬 자세한 정보를 제공하는 명령입니다.

Git URL은 Git 구성 파일 안에 있습니다.은 키 " 값키에해니다합당이"에 합니다.url.

Mac 및 Linux의 경우 아래 명령을 사용합니다.

awk '/url/{print $3}' project_dir/.git/config

경 텍 트 편 에 서 아 파 찾 값 습 니 다 을 키 열 고 을 일 우 의 래 스 기 집 ▁windows 다 니 ▁key ▁the ▁for ▁for 찾 ▁value 습 ▁and ▁open ▁in ▁find ▁text ▁the ▁windows , ▁file ▁editor ▁any 값url.

project_dir/.git/config

참고: 오프라인이거나 원격 Git 서버가 다운된 경우에도 작동합니다.

기본적으로 다음을 사용합니다.

git remote get-url origin

윈도우즈의 Git Bash 명령 콘솔 또는 CMD 명령 콘솔에서 작동합니다.즉, Git 버전 2.x에서 작동합니다.

git config --list

이 명령은 리포지토리와 관련된 모든 정보를 제공합니다.

업스트림의 원격을 "오리진"이라고 부르지 않을 수 있으므로 다음과 같은 변형이 있습니다.

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

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은 중요하지 않습니다.

간단한 방법은 다음을 여는 것입니다..git/config파일 이름:

cat .git/config

편집 방법:

vim .git/config또는

nano .git/config

쉬운 방법입니다. .git 폴더가 있는 곳에 이 명령을 사용하면 됩니다.

git config --get remote.origin.url

네트워크에 연결되어 있는 경우

git remote show origin

로컬 Git 저장소가 원래 복제된 URL을 표시합니다.

의 IP 주소/호스트 이름을 가져오려면 다음과 같이 하십시오.origin

위해서ssh://리포지토리:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"

위해서git://리포지토리:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"

다른 답변 보완: 리모컨이 어떤 이유로 변경되어 원래 원점이 반영되지 않는 경우, reflog의 첫 번째 항목(즉, 명령에 의해 표시되는 마지막 항목)git reflog는 레포가 원래 복제된 위치를 표시해야 합니다.

예.

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

(reflog가 제거될 수 있으므로 작동하지 않을 수 있습니다.)

임의로 명명된 원격 가져오기 URL 인쇄:

git remote -v | grep fetch | awk '{print $2}'

와 함께git remote show origin프로젝트 디렉토리에 있어야 합니다.그러나 다른 곳에서 URL을 확인하려면 다음을 사용할 수 있습니다.

cat <path2project>/.git/config | grep url

이 명령어가 자주 필요할 경우 다음과 같이 에일리어스를 정의할 수 있습니다..bashrc또는.bash_profileMacOS를 사용합니다.

alias giturl='cat ./.git/config | grep url'

그래서 당신은 전화만 하면 됩니다.giturlGit 루트 폴더에서 해당 URL을 쉽게 얻을 수 있습니다.


이 별칭을 이렇게 확장하면

alias giturl='cat .git/config | grep -i url | cut -d'=' -f 2'

앞의 URL 없이 일반 URL만 얻을 수 있습니다.

"url="

url=http://example.com/repo.git

더 많은 가능성을 활용할 수 있습니다.

에서는 Mac으로 할 수 .open $(giturl)표준 브라우저에서 URL을 엽니다.

또는chrome $(giturl)리눅스에서 Chrome 브라우저로 열기.

분기에 대한 업스트림 원격의 이름을 모르는 경우 현재 분기가 구축된 업스트림 분기 이름을 검사하여 먼저 해당 이름을 조회할 수 있습니다.사용하다git rev-parse다음과 같이:

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)

이는 복제된 원본 원격 저장소와 반드시 동일한 것은 아닙니다.하지만 많은 경우에 그것은 충분할 것입니다.

원격 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
#!/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
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 : https://stackoverflow.com/questions/4089430/how-to-determine-the-url-that-a-local-git-repository-was-originally-cloned-from

반응형