2011-09-17 7 views
3

나는 Git에게 완전한 초보자입니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다. 내 친구와 나는 함께 프로젝트 작업을하고있다.Git에서 병합과 커밋 사이에 혼란이 있음

나는 리모트 서버 git fetch에서 모든 파일을 가져 왔으므로, 이제는 모든 파일을 가지고 있습니다. 나는 그들 중 일부를 편집

  • , 그는

  • 내가 매일 가져 오는 일을 계속 등, 그 중 일부를 편집하고, 그는이를 일부 파일을 수정하고 업데이트했다고 말해 시작 그러나 이러한 변화는 제 마지막에 나타나지 않습니다.

  • Windows에서 Git GUI를 열면 왼쪽에는 두 개의 패널이 있습니다.

    하나는 Unstaged Changes 말한다 - 나는이 내가 그들을 add하지 않는 로컬 저장소 에 업데이트되지 않습니다 내가 변경 가지 있습니다이 의미하는 데려 갈거야.

    다른 하나는 Staged Changes (Will Commit)입니다. 이 창에서 파일 중 일부를 클릭하면 업데이트 내용이 표시됩니다. 친구가 편집중인 파일에 나타나지 않습니다. 으로 변경 사항을 볼 수 있습니다.

  • 나는 내가 지금 더 이상 파일이 두 개의 측면 패널, 아니 Unstaged Changes없이 Staged Changes (Will Commit)의에 없다, 힘내 GUI에서 commit 버튼을 누르면 내 디렉토리

  • git add . 모든 파일을 추가합니다.

  • 나는 모든 파일을 검사하고 나의 끝과 나의 친구의 끝 둘 다에서 변화가 1 개의 파일로 합병 된처럼 보인다.

나는 아직도 어떤 일이 일어 났는지 확신하지 못합니다.

  • 질문 1 : 올바르게 했습니까?

  • 질문 2 : 정확히 merge의 기능은 무엇입니까?

왜냐하면 나는 git merge origin/master과 병합을 계속하고 있기 때문에 병합하지 않는 것 같습니다. 난 commit 그냥 몇 가지 해시 코드로 현재 버전의 기록을 쓴다고 생각하지만 commit 실제로는 내가 생각한 일을하고있는 것 같습니다 merge - 그것은 병합 변경 사항입니다.

오랜 질문에 사과드립니다. 매우 혼란 스럽습니다.

+1

git fetch 대신 git pull을 원할 수 있습니다. – tjameson

+4

걱정 마세요, git은 처음에는 모든 사람에게 혼란 스럽습니다. 그러던 어느 날 '찰깍 소리가납니다'그리고 당신은 어떻게 살아남 았는지 궁금해 할 것입니다. 나는 호기심과 수용, 증오, 그리고 수용과 사랑으로 돌아갔습니다. 그것의 그냥 자식 방법 : – CodingWithSpike

답변

6

나는 당신이 오해하고 있다고 생각합니다. git fetch.

그것은 단지 당신의 경우, origin REPO의 master 지점을 원격 저장소에 변경을 가져 오는, 그러나 (그것은 단지 .git 디렉토리에 로컬로 저장) 하지이 트리에 적용한다.반면에 git merge은 원격 변경 사항을 저장소에 적용합니다.

친구의 변경 사항을 가져 와서 작업 트리에 병합하려면 git pull origin master을 사용해야합니다. 기본적으로 git pullgit fetch 다음에 git merge과 동일합니다.

확인이 아웃 : Git Fetch vs Pull


양자 택일

친구는/당신은 원점 저장소에 보내고되지 push 있습니다. 친구가 git push origin master을 저 지르지 않았습니까? 위탁은 현지에 있으며, 나머지 세계와 "공유"하려면 git push이어야합니다.

origin 저장소에서 직접 작업하고 있습니다. 그렇다면 그의 커밋이 그의 지점에 이미 origin에 있기 때문에 밀어 낼 필요가 없습니다.

+0

하지만이 여전히 내 문제를 해결하지 않습니다 : 병합 아무것도하지 않는 것 같습니다. 병합 할 때마다 "이미 최신"이라고 계속 말합니다. 그러나 Git GUI 내부에서 "병합되지"않은 변경 사항이 있음을 볼 수 있습니다. – reedvoid

+0

스크린 샷을 게시 해주세요. 무슨 뜻인지 궁금합니다. – evgeny

+0

여러분은 "병합"이 실제로 무엇인가를 함축하고있는 것처럼 보입니까? 나는 결코 그것을 본적이 없기 때문에 내 끝에서 아무 것도하지 않는다. – reedvoid

1

설명하는 데 오랜 시간이 걸릴 것이므로 이미 series of blog articles에서 완료했습니다. 그들을 한번보세요. 그들은 초보자의 입장에서이 기본적인 것들을 통해 여러분을 안내합니다.

0

당신이 좋은 책을 소중하게 생각한다면, Version Control with Git 책을 권하고 싶다. 기사는 분명히 더 즉각적이고 저렴하지만 Git은 꽤 복잡한 짐승이며 나는 장기간에 좋은 기초를 제공한다고 믿는다.

내 두 센트.

관련 문제