Windows 용 GitHub의 "동기화"기능은 무엇입니까?


87

Windows 용 GitHub를 사용하면 분기를 "게시"한 다음 해당 분기를 GitHub에 "동기화"할 수 있습니다.

여기에 이미지 설명 입력

동기화는 기본적으로 git pullgit push? 아니면 더 많은 것이 있습니까? 명령 줄에서 "동기화"와 똑같은 단계를 수행하려면 어떻게해야합니까?

(오픈 소스가 아니거나 방금 읽었습니다.)

답변:


52

동기화는 수행 git pull --rebase한 다음 로컬 변경 사항이있는 경우 수행 git push합니다.

여기에서 : http://haacked.com/archive/2012/05/21/introducing-github-for-windows.aspx#87318


2
리베이스 단계 중에 충돌이 발생하면 어떻게됩니까?
Svante 2013

26
@Svante는 실패하고 엉망을 정리할 수 있도록 쉘을 열 것을 제안합니다. 이 페이지를 어떻게 찾았는지 :-)
Andiih

8
여전히 사실입니까? 방금 동기화를 수행하고 병합 커밋으로 끝났습니다. 흐름이 ​​다음과 같은 경우에는 발생하지 않아야합니다. git pull --rebase; git push
Micah Zoltu 2013-06-20

@Michas Caldwell의 의견에 대한 설명은 그가 옳다고 생각합니까?
benchuk

방금 동기화를 누르는 것을 확인할 수 있습니다 git pull. git pull --rebase, 따라서 ... 커밋 의 추가 병합 분기 '마스터'를 만듭니다.
Leo

42

위의 답변은 2 년이 넘었 기 때문에이 질문에 대한 업데이트 된 답변은 rebase의 일부 버그로 인해 "sync"버튼이 git pull --rebase더 이상 작동하지 않습니다. 대신 이 릴리스 노트 에 따르면 충돌이 발생하면 병합git pull 을 수행 합니다 (릴리스 1.3.0 참조).

위 링크는 현재 사용할 수 없습니다. 다음은 새로운 릴리스 정보 입니다.


2
사실 그것은 완전히 사실이 아닙니다. 리베이스가 작동하지 않는 경우에만 병합을 시도합니다.
요리스 MEYS

릴리스 정보 링크가 끊어졌습니다.
skolima

2
@JorisMeys 귀하의 진술이 사실인지 잘 모르겠습니다. 내 경험상 원격에서 내 앞에 커밋 이 있으면 리베이스를 수행 할 수 있더라도 병합 커밋을 생성합니다.
Jerad 로즈

@JeradRose 제가 의견을 썼을 때 우리는 Github Desktop v. 2.x에 있었고 지금은 3.3에 있습니다 :-)하지만 당신 말이 맞아요.
요리스 MEYS

17

"동기화"는 로컬 분기가 원격 분기와 일치하도록하는 데 필요한 모든 작업입니다. 로컬 브랜치에 원격 브랜치가하지 않은 커밋이있는 경우 "sync"가 브랜치를 푸시합니다. 원격 분기가 로컬 분기보다 앞서 있으면 "sync"가 먼저 당겨집니다 (특히 Phil Haack git pull --rebase설명한 대로 ). "동기화"는 로컬과 원격을 서로 미러링하는 지름길 일뿐입니다.

로부터 GitHub의 사이트 :

The sync button turns the complex workflow of pulling and pushing into a single operation. It notifies you when there are new changes to pull down and lets you quickly share local changes.


단순히 당기는 것이 아니라 "git pull --rebase"를 수행합니다. 이는 중요한 차이점입니다. 또한 주문이 잘못되었으므로 밀기 전에 당기십시오.
Andiih

2
@Andiih 내 언어는 일반화되었으며 정렬 된 작업 목록이 아닙니다. 순서가 암시되었습니다. "원격 지점 로컬 지점보다 앞선 경우 "라는 메시지가 표시됩니까? 내 설명은 GitHub 사이트에서 직접 인용 한 내용이기도합니다. 그럼에도 불구하고 Matt Rix의 답변은 더 자세하며 답변으로 표시 할 가치가 있습니다. 내 대답의 혼란을 명확히하기 위해 약간의 수정을했습니다.
redhotvengeance 2013

github 동기화는 원본 외에도 업스트림 변경 사항을 가져옵니다. 즉 나는 REPO를 f9rked, 그리고 포크의 로컬 복제를 비하, 내가 정말 원하는 것은 상류뿐 아니라 원산지의 변경입니다
AaronLS

1
@AaronLS GitHub for Windows는 현재 하나의 리모컨, 즉 origin. 여러 대의 리모컨으로 작업하려면 명령 줄을 사용해야합니다. 관련 정보는 여기의 '여러 Git 리모컨 및 비 GitHub 리모컨' 에서 찾을 수 있습니다 .
redhotvengeance jul.

4

@ethanyang의 답변에 추가하려면 ,

gitconfig에 구성된 별칭에 따르면

[alias]
...
sync = !git pull && git push

4
호기심 때문에! 위 줄에서 의미합니까?
Scott Romack 16.07.14

: @ScottRomack 그것은이 쉘 명령으로 처리됩니다 것을 의미 stackoverflow.com/questions/21083933/...
니콜라스 Holthaus을

GitHub Desktop에이 별칭이 이미 설정되어 있습니까? 그렇다면이 구성은 어디에 있습니까? 내 global에서이 별칭을 보지 못했습니다 .gitconfig. 아니면 이것은 당신 자신의 재정의입니까?
james
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.