로컬 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
일부 정보:
$ git remote -v
원하는 원격이 아닌 모든 원격이 인쇄됩니다.원산지를 원하시는 거죠?$ 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_profile
MacOS를 사용합니다.
alias giturl='cat ./.git/config | grep url'
그래서 당신은 전화만 하면 됩니다.giturl
Git 루트 폴더에서 해당 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
'programing' 카테고리의 다른 글
Mongo의 컬렉션을 어떻게 설명해야 합니까? (0) | 2023.05.13 |
---|---|
PostgreSQL 추가 출력 사용 안 함 (0) | 2023.05.13 |
요소를 배열의 시작 부분으로 푸시하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.05.13 |
MongoError 수정 방법: 종료된 세션을 사용할 수 없습니다. (0) | 2023.05.13 |
로컬 모듈을 npm 패키지 종속성으로 지정하는 방법 (0) | 2023.05.13 |