2011-05-16 3 views
1

다른 컴퓨터를 사용해야합니다. 나는 파일 A, B 및 다른 파일들을 하나, B, C 및 다른 파일들을 다른 파일로 업데이트했다.merge/pull in git 처리 방법

파일 B의 업데이트는 코드의 일부입니다. 나는 둘 다 다했다. 나는 A와 B를 기저귀에 밀어 넣었다.

질문 :

지금은 다른에 무엇을해야
  • ?

  • 방금 ​​가져와야할까요? 아니면 먼저해야합니까?

  • 내가 누르면 파일 A를 덮어 쓰시겠습니까?

  • 내가 가져 오면 C 파일을 덮어 쓰시겠습니까?

  • 어떤 절차가 필요합니까?

  • 다른 버전의 파일 B는 어떻게해야합니까? 그들을 병합 할 수 있습니까?

답변

0

일반적인 시나리오는 변경 사항을 밀어 전에 풀을 할 것입니다. 하지만 커밋의 현재 조상이 마지막으로 꺼낸 이후 (즉, 다른 모든 커브가 아직 푸시하지 않은 경우), 병합이 필요하지 않으며 필요없이 변경 사항을 푸시 할 수 있습니다. 당겨.

다른 누군가가 변경 사항을 푸시 한 다음에는 항상 변경 사항을 자신의 것으로 가져와야합니다 (git이 병합 커밋이라고하는 것을 만듭니다. 이는 일반적인 방법으로 작성되지 않은 커밋입니다. git add, git commit 등). 이제 저장소가 최신 변경 사항과 동기화되고 중앙 저장소를 안전하게 동기화 할 수 있습니다.

이 경우 처음부터 가져와야합니다. 즉, 두 저장소의 버전이 같으므로 C를 덮어 쓰지 않습니다 (두 repos 모두에서 B 만 변경).

git에서 병합해야하는 두 개의 분기 버전이있는 B의 경우 충돌이있을 수 있습니다. 그러나 이것은 정확히 pull이 무엇인지, 가져 오기 (저장소를 동기화) 및 원격 분기를 추적하는 로컬 분기 간의 병합입니다 (예 : 저장소). 마스터가 origin/master와 병합됩니다.

마지막으로 A와 동일한 문제가 발생합니다. 수정 된 A가 동일한 버전 (동일한 모양)에서 수정되었으므로 A에 대한 첫 번째 repo에서 변경된 사항은 다른 저장소에서 A로 간단하게 병합됩니다. 다른 레포에서.

희망 사항을 확인해주세요.

건배!

2

당신은 당신의 추가가 서버에 무엇의 위에되도록 첫째, 당기해야합니다. (이전에 푸시 한 모드와 로컬 모드를 합치면) 푸시 할 수 있습니다. 참고 사항 : 이것은 github이 아니며, 이것은 일반적인 자식입니다. 나는 자식 동작을 이해하기 위해 다음과 같은 책을 제안한다

http://book.git-scm.com/

+0

먼저 끌어 오기를 수행해야한다면 밀어 넣기가 실패합니다. –