Git은 프로젝트 공유 방법에 대한 버전 제어 프로세스를 정의합니다. Git 프로젝트를 호스팅할 수 있는 많은 웹사이트가 있습니다. GitHub는 가장 인기 있는 옵션이고 Bitbucket은 또 다른 인기 있는 대안으로 무제한 공개 또는 비공개 리포지토리를 만들 수 있는 무료 계정을 허용합니다. GitLab은 타사 호스팅에 의존하지 않고 비공개 개발을 허용하는 자체 호스팅 대안을 제공합니다.
Git 저장소를 먼저 다운로드하는 프로세스를 복제라고 합니다. 복제에는 당시의 리포지토리에 대한 모든 정보가 포함되지만 시간이 지남에 따라 리포지토리를 최신 상태로 유지하려면 새 버전을 가져와야 합니다. 그렇게 하려면 저장소의 로컬 버전이 있는 디렉터리에서 터미널 창을 열고 "git pull" 명령을 입력하기만 하면 됩니다.
이 명령의 작업은 업데이트된 버전의 저장소를 다운로드하려는 경우 특히 간단합니다. 로컬 버전은 원격 버전과 일치하도록 업데이트됩니다. 그러나 로컬 버전을 수정한 경우 문제가 있을 수 있습니다.
"git pull" 명령은 실제로 "git fetch"와 "git merge FETCH HEAD"라는 두 개의 개별 명령을 실행합니다. 하위 명령 "git fetch"는 특히 온라인 저장소에서 최신 버전을 가져와 임시로 저장합니다. 하위 명령 "git merge FETCH HEAD"는 로컬 변경 사항을 다운로드한 버전과 병합하고 최신 커밋을 선호합니다.
팁: "git commit"은 변경 사항을 제출하는 것입니다. 같거나 다른 작업을 수행하는 여러 로컬 및 원격 커밋이 있을 수 있습니다. 로컬 커밋은 변경 사항이 푸시될 때까지 원격 버전에서 볼 수 없습니다. 각 커밋은 정확히 어떤 변경 사항이 있었는지 자세히 설명하고 타임스탬프를 포함합니다.
로컬 버전과 원격 버전 간의 충돌
이상적으로는 병합 시나리오에서 충돌이 없고 병합 프로세스가 자동으로 완료됩니다. 변경 사항이 거의 없거나 로컬 변경 사항이 원격 변경 사항을 방해하지 않는 경우 병합이 특히 쉬울 수 있습니다. 그러나 코드의 동일한 부분에 복잡한 변경 사항이 충돌하는 경우 Git에서 병합 오류가 발생합니다.
이 시점에서 "git merge –abort" 명령으로 병합을 중단하거나 충돌을 수동으로 해결할 수 있습니다. "git mergetool" 및 "git diff" 명령은 도움이 되는 차이점에 대한 그래픽 예제를 제공합니다. 병합을 허용하기 위해 수동으로 적용해야 하는 변경 사항을 가능한 한 쉽게 볼 수 있도록 완벽한. 모든 충돌을 해결했으면 "git merge –continue" 명령을 입력하여 병합을 완료합니다.