inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

빠르게 git - 핵심만 골라 배우는 Git/Github

협업 질문있습니다!

231

레테

작성한 질문수 10

1

안녕하세요 강사님

질문이 두가지가 있습니다~!

<첫번째 질문>

제가 전에 svn을 쓰다가 git을 배우니 혼란스러운데요

예를들어 협업시 원격 저장소와 로컬 저장소 모두에 변경이 있는경우,

svn에서는 원격을 로컬에 update 후 -> 로컬을 원격에 commit하는 방식으로 동기화를 했었거든요.

그런데 git에서는 이것이 pull request라는 기능으로 대체되는것 같더라구요. 

그렇다면 pull request 대신, 원격을 로컬에 pull한 후 -> 로컬을 원격에 push해도 무방한가요?

(만약 맞다면 pull, push 순서는 상관없는건가요? push -> pull해도되는건지요?)

물론 pull request가 좀더 안전하거나 편리한 점이 있겠지만 제 스스로 이해를 하기 위해서 질문드려요.

 제가 혼자 로컬 변경해서 commit + 원격 변경해서 commit 한다음에 pull->push하니까 얼추 서로 동기화가 되는것같더라구요. (물론 충돌이 날까봐 같은 부분을 수정하지는 않았어요)

--------------------------------------

<두번째 질문>

협업시 원격-로컬 상호작용 시나리오가 다음과 같이 세가지가 있다고하셨는데요

1. 원격 변경, 로컬 그대로 - pull

2. 원격 그대로, 로컬 변경 - push

3. 원격 변경, 로컬 변경  - pull request

만약 제가 로컬에서 변경했고, 원격은 변경이 없다고 생각해서 (= 2번인 경우라고 생각해서) 원격에 push했는데,

사실 원격에도 변경이 있었다면 어떡하죠? (=사실 3번 경우였던 것..)

pull request를 썼어야했는데 모르고 push를 써버린거잖아요 

원격에 변경이 있는지를 항상 미리 확인해야하는건가요? (만약 그렇다면 원격이 변경됐는지 확인하는 방법이 있나요?)

github git 버전관리시스템

답변 2

0

레테

강사님 답변 너무 감사합니다~!!

0

강민철

안녕하세요! 답변 드리겠습니다~

질문 1-1. Pull Request와 Pull->Push가 같은가? 

만일 혼자서 진행하는 프로젝트일 경우, 혹은 로컬 저장소의 변경 내역이 원격 저장소에 전혀 충돌난 부분(겹치는 부분)이 없을 경우에는 동일한 효과를 보입니다.

하지만 여럿이 진행하는 프로젝트에서 충돌의 여지가 있는 코드를 push할 경우엔 다릅니다. 만일 로컬 저장소의 수정과 원격저장소의 수정이 동일한 위치에서 발생했을 때, Pull 하게 되면 그대로 동기화 되지 않고

===========
<<<< 기존코드
============
>>>> 수정한 코드

와 같이 뜰 거에요. 이렇게 된다면 (여럿이 같이 협업하는 프로젝트일 경우) 충돌난 부분 중 무엇을 채택할지 모르겠죠..?

반면 Pull Request는 이러한 충돌 문제에 대해 "사전에 해당 코드에 대해 논의할 수 있다"는 점에서 차이가 있습니다. Pull Request를 날리는 행위 자체가, "내 코드를 당신과 논의하고 싶다"는걸 보이는 거라고 보셔도 무방합니다.

결론은, 여럿이 같이 진행하는 프로젝트의 경우, 내 로컬 저장소에서 변경한 내용과 원격 저장소에서 수정된 내용이 겹칠 경우, 즉 충돌의 여지가 있을 때는 Pull Request를 통해 논의하시길 추천드리고, 그렇지 않은 경우엔 pull and push로 하셔도 무방합니다.

질문 1-2. Pull & Push와 Push & Pull이 같은가?

위 답변과 맥락이 같습니다. 
만일 혼자서 진행하는 프로젝트일 경우, 혹은 로컬 저장소의 변경 내역이 원격 저장소에 전혀 충돌난 부분(겹치는 부분)이 없을 경우에는 동일한 결과를 냅니다.

질문 2.
그 경우엔 충돌이 일어납니다. push되기 전 
"어디어디에 이러이러한 충돌이 있을 것 같아서 우선 push 안했다, 확인해봐라~"하는 메세지가 뜰 거에요. 그걸 확인하시고 pull request를 보내시거나 겹치지 않게 수정하신뒤 다시 push하면 됩니다 :)

pull request에 관해

0

35

1

로컬과 원격의 상호작용 강의 질문

0

130

2

password authentication was removed

0

223

2

section3부터 맥북에서 화면이 안나옵니다.

0

206

2

Git bash 우클릭 보이지 않음

0

349

1

원격 저장소 조회(추가)

0

172

1

혹시 아래처럼 계속 파일을 찾을 수 없다는 건 어떤 의미일까요..

0

137

1

Git 맥북 다운로드

0

292

2

Git bash 다 마우스 우클릭해도 보이지 않습니다

0

412

2

pr 이후 브랜치 삭제 질문드립니다

0

947

2

블로그

0

255

2

github에서 push오류

0

261

1

reset에서 head

0

332

1

git branch 관련 질문

0

217

1

Section 2 / 4강 / 3:23초 질문

0

166

1

diff & revert

0

267

1

이슈 번호를 잘못 명시한 커밋을 삭제하는 방법

0

1179

1

강의 "로컬과 원격의 상호작용 실습 (+충돌이 난 경우)" 편의 영상 7분 38초 쯤에서 질문 드립니다.

0

416

1

mac사용

0

304

1

원격 branch를 checkout 하면서 새 branch를 만드는 방법

0

441

1

git checkout 과 git switch/restore

0

2421

1

로컬 브랜치 관련 질문합니다.

0

196

3

git stash, git tag 에 대한 강의자료가 있으면 좋겠습니다

0

300

1

브랜치를 main(master) 와 동기화 하고 싶을 때

0

9141

1