답변:
저장소 루트에서 .git/config
파일은 원격 저장소 및 분기에 대한 모든 정보를 보유합니다. 귀하의 예에서 다음과 같은 것을 찾아야합니다.
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
또한 Git 명령 git remote -v
은 원격 저장소 이름과 URL을 표시합니다. "원본"원격 저장소는 일반적으로 로컬 복사본이 복제 된 원본 저장소에 해당합니다.
git remote show origin
하여 해당 리모컨에 대한 더 많은 정보를 볼 수도 있습니다 .
git remote -v
그냥 읽고 쓰는 것 같습니다 .git/config
.
git config --get remote.origin.url
git remote show origin
네트워크를 호출합니다.
나는 organization/repo
github 또는 gitlab과 같은 git 호스트에서 문자열 을 얻으려고 시도하는이 질문을 우연히 발견했습니다 .
이것은 나를 위해 일하고 있습니다.
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
명령 sed
의 출력을 git config
조직 및 저장소 이름 으로 바꾸는 데 사용 합니다 .
정규식 github/scientist
의 문자 클래스와 같은 것이 일치 [[:graph:]]
합니다.
는 \1
단지 일치하는 문자로 모든 것을 대체 할 sed를 알려줍니다.
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
세 가지 다른 URL 스타일로 테스트되었습니다.
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'