이상하게 보이면 HTTPS를 HTTPS로 변환해야합니다.
[url "ssh://server/"]
insteadOf = "https://server/"
[url "https://server/"]
pushInsteadOf = "https://server/"
문제
SSH에서 데이터를 얻기 위해 모든 복제/당김을 강제하고 싶습니다. 그러나 푸시를 위해 https를 계속 사용합니다.
내 명령은 항상 https를 사용합니다 (git clone https://
) 그리고 나는 이것을 바꿀 수는 없지만 (많은 스크리트를 사용하여 사용) 클론이 SSH를 사용하도록 강요하고 https를 계속 사용하여 푸시하고 싶습니다.
내가 한 일 (이 순서로) :
[url "ssh://server/"]
insteadOf = "https://server/"
[url "https://server/"]
pushInsteadOf = "ssh://server/"
그러나 페치와 푸시는 모두 SSH로 번역되고 있습니다.
$ git remote -v
origin ssh://server/repo.git (fetch)
origin ssh://server/repo.git (push)
그리고 다음과 같은 것을보고 싶습니다.
$ git clone https://server/repo.git
$ git remote -v
origin ssh://server/repo.git (fetch)
origin https://server/repo.git (push)
해결책
이상하게 보이면 HTTPS를 HTTPS로 변환해야합니다.
[url "ssh://server/"]
insteadOf = "https://server/"
[url "https://server/"]
pushInsteadOf = "https://server/"
다른 팁
사용 git remote set-url --push
. 문서에서 :
set-url
Changes URL remote points to. Sets first URL remote points to
matching regex <oldurl> (first URL if no <oldurl> is given)
to <newurl>. If <oldurl> doesn’t match any URL, error occurs and
nothing is changed.
With --push, push URLs are manipulated instead of fetch URLs.
With --add, instead of changing some URL, new URL is added.
With --delete, instead of changing some URL, all URLs matching
regex <url> are deleted. Trying to delete all non-push URLs is an error.