원격 Git 리포지토리의 URI (URL)를 변경하는 방법은 무엇입니까?


3892

하드 드라이브 (로컬)에서 복제 한 USB 키에 저장소 (원점)가 있습니다. "원점"을 NAS로 옮기고 여기에서 복제를 성공적으로 테스트했습니다.

"local"설정에서 "origin"URI를 변경할 수 있는지 알고 싶습니다. 이제 USB 키가 아닌 NAS에서 가져옵니다.

지금은 두 가지 해결책을 볼 수 있습니다.

  • 모든 것을 usb-orign에 푸시하고 다시 NAS에 복사하십시오 (nas-origin에 대한 새로운 커밋으로 인한 많은 작업을 의미합니다).

  • "로컬"에 새 리모컨을 추가하고 기존 리모컨을 삭제합니다 (내 기록이 깨질까 걱정됩니다).


6
이전 버전의 git (1.5.6.5) 에서이 작업을 수행해야했으며 set-url 옵션이 존재하지 않았습니다. 원치 않는 리모컨을 삭제하고 동일한 이름의 새로운 리모컨을 추가하면 문제없이 작동하고 기록을 잘 유지할 수 있습니다.
HotN

내 경우에는 내 권한을 확인해야합니다. 두 개의 개인 git 저장소가
있으며이

답변:


6326

당신은 할 수 있습니다

git remote set-url origin new.git.url/here

(참조 git help remote) 또는 .git/configURL을 수정 하고 변경할 수 있습니다 . 당신은 당신이 매우 어리석은 일을하지 않는 역사를 잃는의 위험하지 않은 (당신이 걱정하는 경우 귀하의 repo 이후와, 그냥 당신의 repo의 사본을 만들 것입니다 귀하의 역사.)


29
쉘 사용자가 다른 경우 새 URL의 시작 부분에 git 사용자를 지정하고 싶을 수 있습니다.myself@git://new.url.here
sobi3ch

13
다음을 사용하여 새 출발지 위치에 대한 마스터 업스트림 분기를 설정할 수도 있습니다 git branch -u origin/master. 이렇게하면 매번 필요한 git push대신에 할 수 있습니다 git push origin master.
kelorek

32
@kelorek 또는 당신은 단지 git push -u origin master처음으로 할 수 있습니다 :)
hobbs

26
또한 git remote set-url --push origin git://...원점 ... (푸시) url을 설정해야했습니다.
jpillora 2016 년

3
여러 가지를 들어, 사용할 수 있습니다 git push -u --all(대신 새 URL로 한 번에 모든 지점을 밀어 git push -u origin master)

901
git remote -v
# View existing remotes
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL

git remote -v
# Verify new remote URL
# origin  https://github.com/user/repo2.git (fetch)
# origin  https://github.com/user/repo2.git (push)

리모컨의 URL 변경


100

Git Origin 서버의 호스트 변경

에서 : http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

잘하면 이것은 당신이해야 할 일이 아닙니다. 몇 가지 자식 프로젝트에서 공동 작업하는 데 사용했던 서버의 도메인 이름이 만료되었습니다. 이는 로컬 리포지토리를 마이그레이션하여 다시 동기화 할 수있는 방법을 찾는 것을 의미했습니다.

업데이트 : 최신 git 버전 (2010 년 2 월 게시)을 사용하는 쉬운 방법이 있음을 지적 한 @mawolf에게 감사드립니다.

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

자세한 내용은 매뉴얼 페이지를 참조하십시오.

이전 버전 인 경우 다음을 시도하십시오.

경고로서, 이것은 다른 이름을 가진 동일한 서버 인 경우에만 작동합니다.

새 호스트 이름이 newhost.com이고 이전 호스트 이름이이라고 가정하면 oldhost.com변경은 매우 간단합니다.

.git/config작업 디렉토리에서 파일을 편집하십시오 . 다음과 같이 보일 것입니다 :

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

변경 oldhost.comnewhost.com파일을 저장하고 당신이 완료됩니다.

제한된 테스트 ( git pull origin; git push origin; gitx)에서 모든 것이 순서대로 보입니다. 그리고 네, git internals로 엉망이되는 것은 나쁜 형태라는 것을 알고 있습니다.


나쁜 형태? 혹시. 그러나 저자가 누군가가해야 할 일을 기대하지 않은 무언가 를 해야하는 경우 때로는 내부를 망칠 필요가 있습니다. 그러나 결과가 잘못되면 기꺼이 결과를 받아 들여야합니다. Backup your local repository _before_ messing with git internals.
Jesse Chisholm

56
git remote set-url origin git://new.location

(또는 open .git/config을 찾아서 [remote "origin"]편집하십시오 url =.

리모컨을 검사하여 작동하는지 확인할 수 있습니다.

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

다음에 푸시 할 때 다음과 같이 새 업스트림 분기를 지정해야합니다.

git push -u origin master

참조 : GitHub : 리모컨의 URL 변경


.git / config를 편집하여 새 원점을 설정할 수 없습니다. URL에 명명 된 자식 저장소는 자식 저장소가 아니라고 말했습니다. 원점을 제거하고 다시 만들면 모든 것이 잘되었습니다. 그래도 git remote set-url을 내 문제에 대한 해결책으로 찾지 않았습니다.
octopusgrabbus

git push -u명령에 대한 완전한 답변을 제공하는 +1 아마도 다른 사람들에게는 분명했을 것입니다.
testphreak

37

원격 URL 전환

터미널을 엽니 다.

첫 번째 단계 : -현재 작업 디렉토리를 로컬 프로젝트로 변경하십시오.

2 단계 : -변경하려는 리모컨의 이름을 얻으려면 기존 리모컨을 나열하십시오.

git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

git remote set-url 명령을 사용하여 원격 URL을 HTTPS에서 SSH로 변경하십시오.

3 단계 : - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

4 단계 : -이제 원격 URL이 변경되었는지 확인하십시오.

git remote -v 새로운 원격 URL 확인

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

새 원점을 추가하기 전에 이전 원점을 제거해야합니까?
썰매

프로젝트에서 아무것도 제거하지 않았습니다. 나는 단순히 단계 위를하고 일했다
비 카스 콜리에게

27
  1. gitbash에서 명령을 사용하여 원점 제거 git remote rm origin
  2. 이제 gitbash git remote add origin (비트 저장소의 프로젝트 저장소에서 HTTP URL 복사)을 사용하여 새 Origin을 추가 하십시오.

git remote rm origingit이 없으면 오래된 출처에 대한 세부 정보를 기억 하기 때문에 이것은 실제로 유용한 대답 입니다.
mato

위의 내용 git remote rm origin은 여러 리모컨 문제를 해결합니다. 원격 URL을 설정할 수없는 문제입니다. remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
bitsand

21

자식 원격 set-url {name} {url}

전의) git remote set-url origin https://github.com/myName/GitTest.git


18

repo 터미널에서 아래 명령을 작성하십시오.

git remote set-url origin git@github.com:<username>/<repo>.git

리모컨의 URL 변경에 대한 자세한 내용은 링크를 참조하십시오 .


1
링크가 도움이되었다
ANP

16

로컬을 복제하면 자동으로 구성됩니다.

복제되는 원격 URL.

당신은 그것을 사용하여 확인할 수 있습니다 git remote -v

변경하고 싶다면

git remote set-url origin https://github.io/my_repo.git

여기,

원산지-당신의 지점

기존 브랜치 를 덮어 쓰 려면 여전히 사용할 수 있습니다. 기존 브랜치 를 덮어 씁니다 .

git remote remove url
and 
git remote add origin url

당신을 위해 ...


여러 개의 리모컨이 추가되었으므로 git remote rm origin관련된 모든 URL을 제거하려면 명령이 필요했습니다. 그런 다음 add 명령이 작동했습니다.
bitsand

14

자식 원격 연결을 확인하려면

git remote -v

이제 로컬 저장소를 remote git으로 설정하십시오 :

git remote set-url origin https://NewRepoLink.git

이제 업스트림으로 만들거나 다음 코드를 사용하십시오.

git push --set-upstream origin master -f


1
나는 추진하고 있었지만 github는 새로운 지점을 보여주지 않았다. 마지막 --set-upstream으로 작동했습니다.
OoDeLally

11

당신은 그것을 할 수있는 많은 방법이 있습니다 :

콘솔

git remote set-url origin [Here new url] 

리포지토리가있는 장소에서 열 었는지 확인하십시오.

구성

.git / config (리포지토리와 동일한 폴더)에 있습니다.

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

거북이

1 단계-설정 열기

2 단계-URL 변경

그런 다음 URL을 편집하십시오.

소스 트리

  1. 툴바에서 "설정"버튼을 클릭하여 리포지토리 설정 창을 엽니 다.

  2. "추가"를 클릭하여 저장소에 원격 저장소 경로를 추가하십시오. "원격 정보"창이 열립니다.

  3. 원격 경로의 이름을 입력하십시오.

  4. 원격 저장소의 URL / 경로를 입력하십시오.

  5. 원격 저장소의 호스팅 서비스에 대한 사용자 이름을 입력하십시오.

  6. '확인'을 클릭하여 원격 경로를 추가하십시오.

  7. 리포지토리 설정 창으로 돌아가서 '확인'을 클릭하십시오. 새로운 원격 경로가 이제 저장소에 추가되어야합니다.

  8. 이미 추가 된 원격 경로를 편집해야하는 경우 '편집'버튼을 클릭하십시오. 원격 경로의 세부 사항 (URL / 경로 / 호스트 유형)을 편집 할 수있는 "원격 세부 사항"창으로 이동해야합니다.

  9. 원격 저장소 경로를 제거하려면 '제거'버튼을 클릭하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

심판. 지원하다


11

원격 git URI git@github.com대신https://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

예:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

ssh-agent 를 사용할 때 git push자동으로 수행 할 수 있다는 이점이 있습니다 .

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

아래와 같이 expect 를 사용하여 $HOME/.ssh/agent실행할 수 있도록 스크립트 파일 을 넣습니다 .ssh-add

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

10

Git Bash에서 다음 명령을 입력하십시오.

git remote set-url origin https://NewRepoLink.git

자격 증명을 입력하십시오

끝난



9
$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master

8
20 개의 다른 질문에 20 개의 다른 질문에 대한 답변을 추가 할 때는 답변에 대한 설명을 포함하고 답변의 새로운 측면을 지적하는 것이 매우 중요합니다. 일련의 명령 인 답변을 사용하면 각각의 작업과 가능한 경우 각 명령의 효과를 취소하는 방법을 설명하는 것이 유용합니다. 실행 취소는 누군가가 처음 몇 단계를 수행 할 수 있지만 이후 단계에서 오류가 발생하는 경우 중요합니다.
Jason Aller

@JasonAller 나는 이것이 꽤 자명하다고 생각하며 여기까지 가장 좋은 대답은 다른 사람들은 농담입니다.
올리버 딕슨

7

TortoiseGit을 사용하는 경우 다음 단계를 따르십시오.

  1. 로컬 결제 폴더로 이동하고 마우스 오른쪽 버튼을 클릭하여 TortoiseGit -> Settings
  2. 왼쪽 창에서 Git -> Remote
  3. 오른쪽 창에서 origin
  4. 이제 URL텍스트 상자 값을 새 원격 저장소가있는 곳으로 변경하십시오.

지점과 모든 지역 커밋은 그대로 유지되며 이전과 같이 계속 작업 할 수 있습니다.



3

원격 업스트림 을 변경 하려면git remote set-url origin <url>


더 많은 업스트림 을 추가 하려면 : git remote add newplace <url>

그래서 당신은 일할 곳을 선택 git push origin <branch>하거나git push newplace <branch>


1
여러 업스트림에서 일하는 것에 대한 다른 언급을 찾을 수 없었습니다.
Anderson Cossul

2

구성 파일을 편집하여 URL을 변경할 수 있습니다. 프로젝트 루트로 이동하십시오.

nano .git/config

그런 다음 url 필드를 편집하고 새 url을 설정하십시오. 변경 사항을 저장하십시오. 명령을 사용하여 변경 사항을 확인할 수 있습니다.

git remote -v 

1

Visual Studio 2019 에서이 변경을 원하는 사람들을 위해

팀 탐색기 열기 (Ctrl + M)

홈-> 설정

힘내-> 리포지토리 설정

리모컨-> 편집

여기에 이미지 설명을 입력하십시오


1

저장소가 비공개 인 경우

  1. 시작 메뉴에서 제어판을 엽니 다
  2. 사용자 계정 선택
  3. 왼쪽 메뉴에서 "자격 증명 관리"를 선택하십시오.
  4. Git 또는 GitHub와 관련된 자격 증명을 삭제하십시오.

참고


1

당신의 특권을 확인

내 경우에는 내 사용자 이름을 확인해야합니다

별도의 자격 증명이있는 2 ~ 3 개의 저장소가 있습니다.

문제는 내 허가입니다. 두 개의 개인 git 서버와 저장소가 있습니다.

이 두 번째 계정은 새 저장소의 관리자이고 첫 번째 계정은 기본 사용자 계정이므로 먼저 권한을 부여해야합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.