programing

Git 원격 'push to' 기본값 변경

bestprogram 2023. 5. 12. 22:46

Git 원격 'push to' 기본값 변경

Git 기본 원격 분기 대상을 변경하여 그냥

git push

다음 대신:

git push upstream

현재 이것은 오리진 리모콘으로 설정되어 있고 저는 다른 리모콘으로 설정하고 싶습니다.

원본(복제된) 리모컨을 제거하려고 했습니다.

git remote rm origin

원래 리모컨을 제거했습니다.하지만 그것이 해결하지는 못합니다.git push이해가 가는군요아직도 이해가 가는군요.

대상이 없습니다.fatal: 설정된 푸시 대상이 없습니다."URL"에서
를 사용하여 명령줄을 합니다.

저는 또한 다음을 가지고 놀려고 했습니다.

git remote set-url --push myfork origin

그리고 다른 옵션들은 작동하지 않는 것 같습니다(아마도 제가 오리진 리모콘을 너무 빨리 삭제했기 때문일까요?)

여기 답변에 따라 변경하려고 했습니다.

git config push.default upstream (or matching)

하지만 둘 다 효과가 없었습니다.

사용할 수 있습니다.git push -u <remote_name> <local_branch_name>기본 업스트림을 설정합니다.자세한 내용은 설명서를 참조하십시오.

업스트림 하려면 "유선"을 하십시오.git branch명령어와 업스트림 구성 플래그가 함께 표시됩니다.

리모컨이 먼저 있는지 확인합니다.

git remote -vv

현재(체크아웃된) 분기에 대한 기본 리모컨 설정:

git branch --set-upstream-to <remote-name>/<branch-name>

분기가 올바른 업스트림 리모컨으로 설정되었는지 확인합니다.

git branch -vv

Git 2.3.2 작업 중...

git branch --set-upstream-to myfork/master

지금이다status,push그리고.pull을 가리키고 있습니다.myfork

이 명령을 사용하여 분기의 기본 원격을 한 번에 쉽게 변경할 수 있습니다.

git push -u <remote_name> --all

가 만약에 랬다면을 했다면,git push origin -u localBranchName:remoteBranchName그리고 순차적으로.git push명령을 실행하면 오리진이 존재하지 않는 오류가 발생한 다음 다음 단계를 수행합니다.

  1. git remote -v

내가 신경 쓰지 않는 리모컨이 있는지 확인하세요.다을사여하와 함께 합니다.git remote remove 'name'

  1. git config --edit

오래되거나 존재하지 않는 리모컨의 가능한 징후를 찾습니다.찾다를 .pushdefault:

[remote]
  pushdefault = oldremote

oldremote값을 매기고 절약.

git push이제 작동해야 합니다.

한 번 살펴보는 것이 도움이 될 수도 있습니다..git/config에는 모든 과 각 됩니다.

예를 들면

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@gitea.xxx.be:fii/web2016.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "bugfix/#8302"]
    remote = origin
    merge = "refs/heads/bugfix/#8302"
[branch "feature/#8331"]
    remote = origin
    merge = "refs/heads/feature/#8331"
[remote "scm"]
    url = https://scm.xxx.be/git/web2016bs.git
    fetch = +refs/heads/*:refs/remotes/scm/*

이 파일에서 수동으로 변경하여 원하지 않는 원격을 제거하거나 사용 중인 다른 분기에 대한 기본 원격을 업데이트할 수 있습니다.

  • 주의! 원격을 변경하거나 제거할 때 이 구성 파일의 모든 참조를 업데이트해야 합니다.

(Ubuntu 12.04에서 Git 버전 1.7.9.5 사용) 그냥 설명하면 됩니다.

Git가 원격을 추가/제거합니다.서버가 연결된 Git의 원격 인스턴스입니다.

git remote add myremote git://remoteurl

그런 다음 다음 다음과 같이 Git 저장소를 가져올 수 있습니다.

git fetch myremote

이렇게 하면 'myremote'라는 분기가 생성되는 것처럼 보이지만, 분기에 대한 원격은 자동으로 설정되지 않습니다.이 작업을 수행하려면 다음 작업을 수행해야 합니다.

먼저 이 문제가 있는지 확인합니다.

git config -l | grep myremote

다음과 같은 내용이 표시됩니다.

remote.myremote.url=git://remoteurl
remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/*
branch.myremote.remote=.
branch.myremote.merge=refs/heads/master

보이면,branch.myremote.remote=.그런 다음 계속 진행해야 합니다.

git config branch.myremote.remote myremote
git checkout myremote
git pull

이제 원격 저장소를 최신 상태로 유지하고 풀/푸시를 적절한 원격에 연결해야 합니다.이러한 방식으로 분기별로 원격을 전환할 수 있습니다.[참고][1]

The Official Git Config Documentation에 따르면 기본 푸시 분기를 설정할 수 있습니다(리모트 검색만 가능)pushdefault(해당 페이지에서 pushdefault)를 선택합니다. 그러나 이는 이미 존재하는 리포지토리/문서에는 영향을 주지 않으므로 새 리포지토리/문서에만 적용됩니다.당신은 그것을 기억해야 합니다.--global 기본값 "" "" "(~/.gitconfig)"을 합니다.--system시스템 전체 리포지토리 기본값(/etc/gitconfig)을 설정하고 플래그가 현재 리포지토리(./.gitconfig)에 대한 구성 옵션을 설정하지 않습니다.

또한 push.default 구성 옵션은 원격 동작아닌 ref-spec 동작을 구성하기 위한 것입니다.

[1]:git branch --set-upstream myotherremote일반적으로 여기서 작동하지만, Git은 만약 그것이 그것의 리모콘으로 지점을 설정하지 않을 것이라고 불평할 것입니다.git branch --set-upstream myremote 는 이것이 이라고 생각합니다.하지만 저는 이것이 잘못된 행동이라고 생각합니다.

방금 이 문제를 해결하기 위해 찾은 또 다른 기술(원산지를 먼저 삭제했더라도 실수로 보이는 것)은 git config를 직접 조작하는 것입니다.

git config remote.origin.url url-to-my-other-remote

과 같이 * run 저 의 경 우 다 같 고 과 이 니 다 습 쳤 음 저 는 ▁* ▁run 다 ▁in 니 습 고 쳤 ▁by 같 저 ▁run ▁the 이 ▁i ▁casegit config --editGit 구성 파일에서 다음을 수행합니다.

[branch "master"]
remote = origin # <--- change the default origin here

아주 간단하게, 그리고 이것에 대한 저의 연구와 함께 여기에 있는 훌륭한 의견들 중 몇 가지를 한데 묶습니다.

먼저 원격 지점에 연결할 로컬 지점을 확인합니다.

git checkout mybranch

다음:

git branch -u origin/mybranch

위치:

git branch -u {remote name}/{branch name}

메시지가 표시됩니다.

"Branch mybranch set up to track remote branch mybranch from origin."

Gitman 페이지에서 다음을 찾을 수 있습니다.

remote.pushDefault
기본적으로 푸시할 원격. 재정의branch.<name>.remote분기에 , 모분 대해에기, 의재의됨에 의해 branch.<name>.pushRemote특정 지점에 대해.

git push -u origin head그게 제가 찾던 거예요


다음은 제가 해결할 수 있는 문제입니다.

fatal: The current branch task/PLAT-1924-datagrid-tool-panel-scrollbar has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar

➜  frontend git:(task/PLAT-1924-datagrid-tool-panel-scrollbar) git push -u origin head

Git의 Git의 제안을 합니다.git push --set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar) 나 별칭을 하여 그런다붙고실키바면보로가드사또입다있수습니용력여할하별칭을는기음행을 입력할 수 git push -u origin head지점별로 구분할 필요는 없습니다.

업데이트: 이상하게도 오늘 이 오류가 발생했습니다.소문자 변경head그러나 위 명령에서 대문자로 표시하면 문제가 해결됩니다.

https://stackoverflow.com/a/23402125/470749 덕분입니다.

git remote set-url --push origin앞서 언급한 것처럼 작동해야 하지만 대체 원격 이름 대신 URL을 명시적으로 제공해야 합니다.

git remote set-url --push origin git@github.com:contributor/repo.git

이 작업이 작동했는지 확인하려면 다음을 수행합니다.git remote -v를 들어 예를 .

λ ~/go/src/github.com/stretchr/testify/ master git remote -v
fork    git@github.com:contributor/testify.git (fetch)
fork    git@github.com:contributor/testify.git (push)
origin  git@github.com:stretchr/testify (fetch)
origin  git@github.com:contributor/testify.git (push)

의사들이 말하는 처럼:

명령줄에서 다음을 사용하여 푸시할 위치를 지정하지 않은 경우<repository> 논쟁,branch.*.remote현재 분기에 대한 구성을 참조하여 푸시할 위치를 결정합니다.구성이 누락된 경우 오리진으로 기본 설정됩니다.

언급URL : https://stackoverflow.com/questions/18801147/changing-the-git-remote-push-to-default