Github이란?
Git으로 관리하는 프로젝트들을 온라인 공간에 공유해서 프로젝트 구성원들이 함께 소프트웨어를 만들어갈 수 있도록 도와주는 서비스
일반 클라우드 서비스(Dropbox나 구글 드라이브)와의 차이
일반 클라우드로 협업하는 과정을 생각해보자
구성원들이 한 번에 한 명씩만 일을 해서
한 친구가 작업을 해서 업로드를 한 다음
다른 친구가 그걸 다운받아서 작업을 마치고 그것들을 또 클라우드에 업로드한 후
또다른 친구가 그걸 다운받아서 작업을 하고 이런 식이다
그렇게 하면 문제가 있다
한 사람이 먼저 작업을 마치고 업로드를 했는데
다른 사람이 그 다음에 업로드를 해버리면 그 전 사람이 한 것은 덮어씌워져 버린다
특히 프로젝트 폴더 내에서도 같은 파일을 여럿이 수정해야 하는 상황이라면 일반적인 공유 방법으로는 답이 없다
GitHub는 이 문제를 해결해준다
GitHub 등의 온라인 Git 저장소는 모든 업로드와 다운로드를 커밋 단위로 주고받는다
이 친구가 작업을 먼저 마치고 커밋을 해서 버전을 만들고 업로드를 하면
GitHub상의 프로젝트는 해당 버전으로 최신화가 된다
다음 친구가 완료된 작업을 커밋해서 올리기 위해서는
반드시 GitHub상의 최신 커밋을 먼저 다운받아서 자기 컴퓨터에 있는 프로젝트에 적용부터 하도록 강제가 됨
커밋상에 충돌사항이 있다면 그것도 자기 컴퓨터에서 해결해서 병합하든 하고 나서야
비로소 자기가 작업한 커밋을 공유공간에 올릴 수 있다
그 다음 친구도 마찬가지이다
먼저 공유된 최신 버전으로 자기 프로젝트를 업데이트 하고 나서야 GitHub에다 작업물 업로드 가능
즉, 작업을 동시에 하든 아니든 각자 원하는 때에 자기 컴퓨터에서 하되
그것을 공유공간에 올리는 것은 GitHub가 중간에서 교통 정리를 해서
서로의 작업을 덮어씌우거나 할 걱정 없이 마음 편하게 협업 가능
'Git, Github 😺 > 제대로 파는 Git & GitHub - by 얄코' 카테고리의 다른 글
[Git, GitHub] GitHub에서 프로젝트 다운받기 (0) | 2024.01.20 |
---|---|
[Git, GitHub] GitHub와 작업 중인 프로젝트 연동 (GitHub와 IntelliJ 연동하기) (0) | 2024.01.20 |
[제대로 파는 Git & Github # 15] SourceTree로 진행해보기 (0) | 2024.01.20 |
[제대로 파는 Git & Github # 14] 충돌 해결하기 (0) | 2024.01.19 |