깃헙
- 코드의 상태 관리나 버전 관리 및 협업을 더 쉽게 도와주는 저장소
최근에는 대학교에서도 과제를 개인 깃헙 혹은 수강강좌 깃헙 레포에 PR을 보내라는 식으로 진행되는 것을 보아
S/W에 있어서 뗄 수 없는 존재가 되었다.
우리 학교는 깃헙을 거의 사용하지 않았다. 사용을 하더라도 아는 사람들의 일부만 사용하거나, 교수님이 사용해보라 라고 해야지만 사용하는 편이 많았다. 따라서 해당 교수님의 수업을 진행하면 거의 모든 수강생들은 Conflict로 인해 프로젝트의 뒤엎음을 몇 차례 겪는 것을 보았다.
나 또한 그때까지만 해도 commit push pull 밖에 몰랐다. add 하고 commit하고 push한다. 협업자가 push한다면 pull을 한다.
branch를 사용하는 방법 또한 몰랐고 애초에 존재조차 몰랐다. 친구들과 서비스를 여러차례 개발했지만, 요일을 나누어서 개발할 정도로 Conflict가 무서웠다... 자신들의 깃헙 실력(?)에 확신이 없는 우리는 하루에 1번씩 자신의 Project를 압축하곤 했다...ㅋㅋ...
최근에 1년간 IT 동아리 협업과 사내 연수 과정을 겪으며 branch에서 PR 등 많은 것을 경험하고 있다.
물론 아직 부족함이 많다. 하지만 이 1년동안 내가 느끼고 배운 점들을 간략하게 나마 적어보겠다.
저장소
Local / Remote 저장소로 이루어져있다.
Local - 지역 , Remote - 원격
이름만 들어도 Local이 어딘지 알 것이다. 내가 사용하고 있는 내 컴퓨터/노트북내에 있는 저장소이다.
저장소 : 파일/데이터 들을 저장하는 곳
Local 저장소 : 파일/데이터 들을 저장하는 곳 인데 나의 컴퓨터 안
Remote 저장소 : 파일/데이터 들을 저장하는 곳 인데 어딘가에 있는 서버 안 (누구나/팀원들 접근 가능)
Add
내 Local 저장소에서 생성/수정/삭제 된 파일/데이터 들을 commit 이전까지 모아놓기 위함
Commit
add에서 남긴 기록(생성/수정/삭제) 등을 Local 저장소에 기록을 남김
(내 Local 저장소 내에 a.txt 파일에 내가 10000글자를 써도 '내 컴퓨터'에서만 변경되었을 뿐 '내 컴퓨터 내에 있는 저장소'에서는 변경되지 않는다. '내 컴퓨터 내에 있는 저장소'에 변경을 기록하기 위해서는 commit을 해야한다)
Push
Push : 밀다
내가 갖고 있던 것들을 어딘가로 민다.
내가 갖고 있던 것들은 어디에 있겠는가? Local 저장소이다. 그렇다면 어디로 밀겠는가? 하나밖에 없다 Remote 저장소로 민다.
Local 저장소에 기록된 Commit(파일/데이터 들의 생성/수정/삭제)들을 Remote 저장소에 기록한다.
Pull
Pull : 떙긴다
Push와 정 반대 개념이라고 생각하면 된다.
Remote 저장소에 있는 기록들을 Local 저장소로 가져온다.