developer tip

분산 워크 플로를위한 git의 "간단한"vs "현재"push.default

optionbox 2020. 8. 4. 07:31
반응형

분산 워크 플로를위한 git의 "간단한"vs "현재"push.default


기능적으로 말하자면, 분산 된 워크 플로우에서 구성 설정의 옵션 simplecurrent옵션 의 차이점을 볼 수 없습니다 push.default.

current현재 분기를 지정된 원격의 동일한 이름의 분기로 푸시합니다. simple현재 분기에 대한 추적 및 추적되지 않은 원격 모두에 대해 동일한 작업을 효과적으로 수행합니다 (두 경우 모두 동일한 지점 이름을 적용 함).

누군가 내가 누락 된 분산 워크 플로우에 대한 두 가지의 중요한 차이점을 설명 할 수 있습니까?


차이점으로는 점이다 simple, git push현재 분기 원격 상류 지점 (동일한 이름을 분기 원격에 존재하더라도) 추적하지 않는 경우 (a refspec을 통하지 않고)은 실패 할 것이다 :

$ git checkout -b foo
Switched to a new branch 'foo'

$ git config push.default simple
$ git push
fatal: The current branch foo has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin foo

반면에 current, 현재 지점이 업스트림을 추적하는지 여부는 신경 쓰지 않고 동일한 이름의 지점으로 푸시하려고합니다.

$ git config push.default current
$ git push
Total 0 (delta 0), reused 0 (delta 0)
To /Documents/GitHub/bare
 * [new branch]      foo-> foo

설명서

로부터 힘내 구성 문서 :

  • upstream -현재 지점을 업스트림 지점으로 푸시하십시오.

  • simple -상류와 비슷하지만 상류 지점의 이름이 현지 이름과 다른 경우 푸시를 거부합니다.

  • current -현재 분기를 같은 이름의 분기로 밀어 넣습니다.


차이점은 simple이름이 같은 경우 추적 지점으로 푸시하고 추적 지점에 current관계없이 동일한 이름의 지점으로 푸시한다는 것입니다.

$ git branch -vvv
  master 58d9fdc [origin/master: ahead 1] t1 bobo
* new    37132d3 [origin/save: ahead 1] t1 bibi   # <- tracking branch 'save'

$ git -c push.default=current push                # <- set `push.default=current`
Counting objects: 3, done.
Writing objects: 100% (3/3), 234 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/jthill/sandbox/20/t1
 * [new branch]      new -> new                   # <- and push creates `new` 

참고 URL : https://stackoverflow.com/questions/23918062/simple-vs-current-push-default-in-git-for-decentralized-workflow

반응형