IT Share you

autosetuprebase 대 autosetupmerge

shareyou 2020. 11. 29. 12:35
반응형

autosetuprebase 대 autosetupmerge


나는 단지 내 글로벌 .gitconfig파일을 두드리는 중이었고 나는 이것으로 끝날 수 있음을 알았습니다.

[branch]
  autosetupmerge = always
  autosetuprebase = always

약간 반 직관적 인 것 같았지만, 읽어 본 후에도 둘 다 필요한지 또는 제거 autosetupmerge하고 유지 하는 것이 충분한 지 여전히 알 수 없습니다 autosetuprebase. 내가 작업하는 대부분의 프로젝트는 바로 다운 스트림-> 업스트림 흐름을 가지고 있으므로 일반적으로 분기를 처리 할 때 리베이스가 선호됩니다.


여기서 반 직관적 인 것은 이러한 선호도의 이름입니다. 동일한 기능을 참조하는 것처럼 보이지만 실제로는 그렇지 않습니다.

  • autosetupmerge옵션의 의미 git branchgit checkout -b암시를 제어합니다 --track. 예를 들어 always,
    • git checkout branchname, branchname원격에 있지만 로컬이 아닌 경우 branchname원격 대응 추적 을 생성합니다.
    • git checkout -b newbranchnewbranch이 명령을 실행하기 전에 체크 아웃 한 지점을 추적 하는 새 지점을 생성합니다.
  • autosetuprebase새 브랜치가 리베이스되도록 설정되어야하는지 여부를 제어합니다 git pull. 즉,를 설정 always하면 브랜치가 git pull항상 병합이 아닌 리베이스를 수행 하도록 설정됩니다 . (이 옵션을 변경할 때 기존 분기는 해당 구성을 유지합니다.)

완벽 의미가 있습니다 그래서 모두가하기 autosetupmerge = alwaysautosetuprebase = always; 사실 그게 제가 가진 것이기도합니다.


이것이 첫 번째 히트이기 때문에 google에서 "autosetuprebase"를 검색하면 여기에 조언이 있습니다.

git config --global branch.autosetuprebase always

출처 http://mislav.uniqpath.com/2010/07/git-tips/


autosetupmerge = always (구성에서)와 autosetupmerge = true (기본값) 사이에 차이가 있다는 것을 언급 할 가치가 있습니다.

true는 원격 분기에 대한 병합 만 설정합니다. 항상 지역 지점도 포함됩니다.

당신은 아마도 진실을 원할 것입니다.


"autosetuprebase"의 다른 가능한 옵션을 찾고 있었기 때문에 찾는 데 시간이 좀 걸렸으므로 다음과 같습니다.

branch.autosetuprebase

다른 브랜치를 사용하여 새 브랜치를 만들 git branch거나 git checkout다른 브랜치를 추적하는 경우이 변수는 Git에게 병합 대신 풀로 리베이스를 설정하도록 지시합니다 ( "branch..rebase"참조).

  • never, REBASE이 자동으로 true로 설정되지 않습니다.
  • local, REBASE 다른 지역 지점의 추적 지점에 대해 true로 설정됩니다.
  • remote, REBASE 원격 추적 브랜치의 추적 지점에 대해 true로 설정됩니다.
  • always, REBASE 모든 추적 지점 true로 설정됩니다.

출처 : http://git-scm.com/docs/git-config.html


autosetupmerge를 설정할 필요가 없습니다. 기본값은 true입니다.

참고 URL : https://stackoverflow.com/questions/5480069/autosetuprebase-vs-autosetupmerge

반응형