programing

Git: 분기에 대해 기본적으로 구성된 원격은 무엇입니까?

powerit 2023. 6. 22. 22:33
반응형

Git: 분기에 대해 기본적으로 구성된 원격은 무엇입니까?

원격 저장소가 있습니다.hub나는 오직 회사에서만 일합니다.master분점.아래 오류 메시지의 마지막 문장은 다음과 같습니다."현재 지점에 대해 기본 구성된 원격"을 확인하려면 어떻게 해야 합니까?어떻게 설정해야 하나요?

[myserver]~/progs $ git remote -v
hub     ~/sitehub/progs.git/ (fetch)
hub     ~/sitehub/progs.git/ (push)

[myserver]~/progs $ git branch -r
  hub/master

[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master

[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

보다 간단하게 작업할 수 있습니다..gitconfig는 의미 있는 상태로 남습니다.

Git 버전 v1.8.0 이상 사용

git push -u hub master누를 때 또는:
git branch -u hub/master

OR

(현재 체크아웃된 지점의 리모컨을 로 설정합니다.)
git branch --set-upstream-to hub/master

OR

(이렇게 하면 이름이 지정된 분기에 대한 원격이 설정됩니다.branch_name
git branch branch_name --set-upstream-to hub/master

사용 중인 경우v1.7.x그 이전에

사용해야 합니다.--set-upstream:
git branch --set-upstream master hub/master

원격 분기 추적

git-branch의 추적 옵션을 사용하여 밀고 당기는 기본 원격 리포지토리를 지정할 수 있습니다.일반적으로 로컬 마스터 분기를 만들 때 --track 옵션을 지정하여 이 작업을 수행하지만, 이미 존재하기 때문에 구성을 수동으로 업데이트합니다.

편집하기.git/config

[branch "master"]
  remote = origin
  merge = refs/heads/master

이제 간단히 밀고 당길 수 있습니다.

[소스]

완전성을 위해 앞의 답변은 업스트림 분기를 설정하는 방법은 알려주지만 표시하는 방법은 알려주지 않습니다.

몇 가지 방법이 있습니다.

git branch -vv는 모든 분기에 대한 정보를 보여줍니다. (대부분의 터미널에서 파란색으로 표시됨)

cat .git/config에도 이 항목이 나와 있습니다.

참조용:

이 질문에 대한 답변의 프로그램 버전은 다음과 같습니다.

git branch --list "$(git branch --show-current)" "--format=%(upstream:remotename)"

현재 분기의 기본 원격 이름만 출력됩니다.--show-currentGit 버전 2.22.0 이전에는 옵션이 작동하지 않습니다.

Git: 분기에 대해 기본적으로 구성된 리모컨은 무엇입니까?

이름이 지정된 분기의 경우branch_name이것으로 끝까지 읽어 보십시오.

git config branch.branch_name.remote

세부 사항

로컬로 저장된 지점의 원격 추적 원격 이름을 다음을 통해 프로그래밍 방식으로 읽을 수 있습니다.git config branch.branch_name.remote.

이름이 지정된 분기가 있다고 가정합니다.main원격 추적은 다음과 같이 설정됩니다.origin그렇다면, 당신의.git/config파일에는 다음과 같은 내용이 포함됩니다.

[branch "main"]
    remote = origin
    merge = refs/heads/main

실행:

git config branch.main.remote

...그러므로 해당 구성 설정을 읽고 다음과 같이 반환됩니다.remote.

이러한 패턴을 사용하여 Git 구성 변수를 프로그래밍 방식으로 읽거나 작성할 수 있습니다.

명령: ": " " ": "git config --global blametool.editor subl이 선들을 전역의 맨 아래에 추가합니다.~/.gitconfig파일 이름:

[blametool]
    editor = subl

그 값인 그고그변값읽을을수다있니습수리▁▁out,▁that▁and▁read▁variable다▁can▁you니있습수을읽을 읽을 수 있습니다.subl 포함:git config blametool.editor.

그렇게 해서 대본에 대한 흠집내기 도구를 설정했습니다.

브랜치(예: 마스터)에 대한 효과적인 푸시 리모컨을 가져오는 명령은 다음과 같습니다.

git config branch.master.pushRemote || git config remote.pushDefault || git config branch.master.remote

("managit config" 출력에서) 이유는 다음과 같습니다.

branch.name .remote[...]는 git fetch 및 git push를 알려줍니다. git fetch 및 git push 중 어떤 리모컨에서 [...]로 가져올지 [...] [push]를 리모컨으로 재정의할 수 있습니다.pushDefault(모든 분기에 대해) [및] 현재 분기 [...]는 branch.name .pushRemote [...]에 의해 추가로 재정의됩니다.

어떤 이유에서인지 "managit push"는 branch.name .remote에 대해서만 알려줍니다(세 가지 중에서 우선 순위가 가장 적음에도 불구하고) + 오류로 설정되어 있지 않으면 push defaults to origin이라고 표시합니다. repo를 복제할 때 branch.name .remote가 origin으로 설정되어 있지만 이 설정을 제거하면 git push가 실패합니다.비록 당신이 여전히 오리진 리모콘을 가지고 있더라도.

언급URL : https://stackoverflow.com/questions/4847101/git-which-is-the-default-configured-remote-for-branch

반응형