호출 할 때 magit-push-current
와 P P
상태 버퍼에서, Magit 2.1.0
상류가 설정되지 않은 언제, 어디서 처음에 지점을 밀어 내게 묻습니다.
이전과 마찬가지로 이름을 자동으로 생성하려면 어떻게해야합니까?
호출 할 때 magit-push-current
와 P P
상태 버퍼에서, Magit 2.1.0
상류가 설정되지 않은 언제, 어디서 처음에 지점을 밀어 내게 묻습니다.
이전과 마찬가지로 이름을 자동으로 생성하려면 어떻게해야합니까?
답변:
업데이트 : 아래에 언급 된 "푸시 지점"이 지금 구현되었습니다 . 자세한 내용 은 분기에 대한 설명서 를 참조하십시오.
업스트림 분기를 한 번 설정해야합니다. 당신이 있음을 완료 한 후에는 P P것과 푸시 및 상태 표시 버퍼에 한 unpulled 및 unpushed 변화의 목록을 얻을 것이다 (어떤이있다 제공).
업스트림 브랜치를 설정하는 방법에는 여러 가지가 있습니다. --set-upstream
푸시 팝업에서 스위치를 사용할 수 있습니다 : P -u P. 또는 업스트림을 설정하고 다른 작업을 수행하지 않는 명령을 사용하십시오 b u.
또한 "시작점"이 지점 이름 인 경우 Magit은 새 지점을 만들 때 업스트림 지점을 자동으로 설정합니다. 이것은 로컬 및 원격 "업스트림"에서 작동합니다. 그러나 현지 지점을 시작 지점으로 선택하면 푸시하는 데 도움이되지 않습니다. 현재 저장소에서 현재 저장소로 푸시하는 것은 분명히 의미가 없으며 허용되지 않습니다.
따라서 "업스트림"브랜치가 실제로 다른 로컬 브랜치 인 P P경우 업스트림 브랜치가 구성되지 않은 것처럼 동작하며 정확히 같은 방식으로 동작합니다 P e. 업스트림이 전혀 구성되지 않은 경우에도 마찬가지입니다.
이것은 Git의 한계로 인해 하나의 다른 브랜치를 일부 브랜치 에만 연결할 수 있으며 그 브랜치를 "업스트림 브랜치"라고합니다. 최소한 "업스트림"및 "게시"분기가 있으면 더 좋습니다. 결국 Magit에서 구현하려고합니다. 이슈 # 1485 참조 .
따라서 P P"upstream"브랜치는 "master"가 아니라 "origin / master"가되어야합니다.
나는 항상 git push
인수없이 실행되는 푸시 변형을 추가하는 것을 고려하고 있습니다. 그러면 Git 구성에만 의존하게됩니다.
master
지점에서 시작 origin/master
하여 업스트림으로 설정 되지 않았습니다 . 업스트림에서 자동으로 설정하려면 지점에서 시작해야 합니까?
origin/master
설정 에서 분기 origin/master
했지만 업스트림으로 기대했을 origin/branch-name
것입니다.
P -p P <... completion ...> RET
주 origin/branch-name
당신이 그것을 입력 할 필요가 없습니다, 완료 후보로 제공됩니다.
--set-upstream
현재 지점에 아직 업스트림이 없을 때 자동으로 활성화되는 다음 조언을 사용합니다 .
(defun magit-push-arguments-maybe-upstream (magit-push-popup-fun &rest args)
"Enable --set-upstream switch if there isn't a current upstream."
(let ((magit-push-arguments
(if (magit-get-remote) magit-push-arguments
(cons "--set-upstream" magit-push-arguments))))
(apply magit-push-popup-fun args)))
(advice-add 'magit-push-popup :around #'magit-push-arguments-maybe-upstream)
ido 완료와 결합하면 다음과 같이 새 분기를 추진할 수 있습니다 P P RET.
;; NOTE: requires ido-completing-read+
(setq magit-completing-read-function #'magit-ido-completing-read)
방금 새 분기를 b c
만든 다음 .git/config
파일을 편집하여 origin/branch
모든 magit 2 항목으로 원숭이 가 아닌 것을 가리키고 어쨌든 작동하지 않는 것 같습니다.
변화:
[branch "fix_something"]
remote = .
merge = refs/heads/master
에
[branch "fix_something"]
remote = origin
merge = refs/heads/fix_something
나는 여전히 똑같은 것을 달성하는 magit2에서 핵심 조합을 찾지 못했습니다. 리모컨이 원점에 없기 때문에 리모컨 설정이 작동하지 않습니다.
bu
. 그러나 git branch --set-upstream-to
Git은 존재하고 아는 것처럼 존재하지 않는 브랜치를 업스트림으로 설정할 수 없으므로 Magit도 할 수 없습니다.
some-branch-name
받는origin
원격, 당신은 아마 입력 할 수 있습니다o TAB s TAB
당신은 당신이 원하는 이름을 얻을 것이다.