programing

기본적으로 모든 리포지토리에 대해 Git Pull 사용 기본값을 사용하도록 만드는 방법은 무엇입니까?

batch 2023. 5. 21. 17:39
반응형

기본적으로 모든 리포지토리에 대해 Git Pull 사용 기본값을 사용하도록 만드는 방법은 무엇입니까?

할 수 ?git pull됨 (으)로 표시됨--rebaseStack Overflow Stack Overflow를 하여 Stack Overflow에 대해 되었습니다.branch.autosetuprebase그러나 복제본별로 개별적으로 구성해야 합니다.

내 프로젝트 흐름은 다음과 같이 설정됩니다.pull그자리의 develop에분기다하 앞에 merge기능 분기를 지정합니다. 것이.pull 거의항사는하용을 사용합니다.--rebase그래서 저는 이것이 기본값이 될 수 있는지 알아보려고 합니다.

이제 기본 풀 동작에 대한 3가지 수준의 구성이 있습니다.가장 일반적인 것부터 가장 미세한 것까지 다음과 같습니다.

1. pull.rebase

을 이설을설로 합니다.true는 것을 의미합니다.git pull 항상다같습다니과음다▁toent같▁always▁equival니에 해당합니다.git pull --rebase(예외),branch.<branchname>.rebase으로 명적으설정으로 되어 있습니다.false이전역으로 도 있습니다.) 이 값은 리포지토리별로 또는 전역으로 설정할 수도 있습니다.

2. branch.autosetuprebase

을 이설을설로 합니다.always즉, 추적 분기가 생성될 때마다 아래와 같은 구성 항목이 생성됩니다. 제어를 보세밀제위다해음같과이설수있다습도니정으로 설정될 수 .never,local또는remote저장소별 또는 전역별로 설정할 수 있습니다.» git config --help자세한 내용은

3. branch.<branchname>.rebase

을 이설을설로 합니다.true특정 분기가 항상 리베이스를 통해 업스트림에서 풀된다는 것을 의미합니다.git pull --no-rebase명시적으로 사용됩니다.

결론

저장소의 수는 , " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 사용자의 ( 및 에 대한 할 수 .git config --global pull.rebase true.

어때.

git config --global pull.rebase true

이렇게 하면 항상 리베이스로 당김을 지시합니다.

대답은 아니오입니다.

사용자가 인 원격 저장소를 사용하도록 설정할 수 있는 방법은 없습니다.git pull변경되었다.

그러나 아무도 병합 커밋을 푸시하지 않는지 확인하는 서버측 후크를 설정할 수 있습니다.

또한 관심이 있을 수 있는 몇 가지 구성 옵션도 있습니다.원격 저장소에서 복제하는 모든 개발자가 직접 설정해야 합니다.

branch.<name>.rebase

할 수 있습니다.--rebase 게렇는, 대하것체를 합니다.<name>지점 이름으로:

git config branch.<name>.rebase true

에서 한 후master,master을 에 포함시키다..git/config다음과 같이 보입니다.

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

branch.autosetuprebase

모든 Git 분기에 대해 이전 구성 명령을 실행하는 것은 번거로울 수 있으므로 모든 새 분기에 대해 자동으로 설정하도록 Git를 구성할 수 있습니다.

git config branch.autosetuprebase always

(으)로 지정할 never,remote,그리고.local, 보기man git-config자세한 내용은.)

다음을 제외하고는--global이 " ", " " 에 됩니다..git/config현재 리포지토리만 영향을 받습니다.와 함께--global이 구이저위에 저장됩니다.~/.gitconfig구성되지 않은 모든 리포지토리가 영향을 받습니다.

이 옵션은 이미 존재하는 분기에는 영향을 주지 않습니다.

pull.rebase

git config pull.rebase true

(또한 당신은 그것을 줄 수 있습니다.--global옵션).

true일 를 합니다.git pull는 와동합다니등다에 합니다.git pull --rebase,~하지 않는 한branch.<name>.rebase 로설됨으로 되었습니다.false.

현재 리포지토리의 기본 정책을 설정할 수 있는 방법이 없습니다.

만약 당신이 그것을 스스로 원하며 적어도 1.7.9 git을 사용한다면, 당신은 전체적으로 설정할 수 있습니다.pull.rebase다음과 같은 구성:

git config --global pull.rebase true

하지만 당신은 각 기계에서 해야 할 것입니다.한 가지 옵션은 해당 옵션으로 기본 사용자 홈 템플릿/스켈레톤을 구성하는 것입니다.그러나 사용자는 이 옵션을 변경할 수 있습니다.

병합을 원하지 않는 경우 병합이 있는 푸시를 거부하도록 서버 측 후크를 정의할 수 있습니다.

참고로 다음은 pull.rebase에 대한 원본 문서입니다.

true인 경우 "git pull"이 실행될 때 기본 원격에서 기본 분기를 병합하는 대신 가져온 분기 위에 분기를 다시 배치합니다.'지점...'을 참조하십시오.rebase"를 선택하여 패킷 단위로 설정합니다.

병합할 때 --rebase-merges 옵션을 전달하여 로컬 병합 커밋이 기본 재배치에 포함되도록 합니다(자세한 내용은 git-rebase 참조).

보존할 때 --preserve-merge도 gitbase에 전달하여 로컬로 커밋된 병합 커밋이 gitpull을 실행하여 평탄화되지 않도록 합니다.

값이 대화형이면 기본 재배치가 대화형 모드로 실행됩니다.

참고: 이 작업은 위험할 수 있습니다. 의미를 이해하지 않는 한 사용하지 마십시오(자세한 내용은 git-rebase 참조).

이것은 다음을 만듭니다.--rebase 옵션값본을 할 때 합니다.git pull일정한 지점에

@Flimm, 나는 추가할 필요가 있었습니다.true당신의 첫 번째 옵션을 작동시키기 위해.

따라서 올바른 구문은 다음과 같습니다.

git config branch.<branch>.rebase true

에서 이 명령을 실행하려면 다음과 같이 하십시오.develop분기:

git config branch.develop.rebase true

그고이제는리▁and.develop을 에 포함시키다..git/config다음과 같이 표시됩니다.

[branch "develop"]
        remote = origin
        merge = refs/heads/develop
        rebase = true

사중인경우를 ..gitconfig그리고 사용하기를 원합니다.mergerebase은 이 의 길당때이, 은을당신것에의수있삽에 넣을 수 ..gitconfig:

[pull]
  rebase = false

이렇게 하면 설정한 새 프로젝트마다 성가신 경고가 제거됩니다.

언급URL : https://stackoverflow.com/questions/13846300/how-to-make-git-pull-use-rebase-by-default-for-all-my-repositories

반응형