Git 특강 1-1

김정환·2024년 9월 9일
0

Git

팀프로젝트를 하는 경우
A라는 사람이 작성한 기능을 공유해야 함
1. 작업물을 압축해서 보낸다.
2. 프로젝트에 합친다.

문제 1

  1. A가 작업물 일부를 빠뜨리고 보낸다.
  2. 전달 받은 사람이 제대로 적용을 못할 수 있다.
    또 다른 사람 D가 작업을 공유한 경우
  3. D 작업물을 먼저 적용하고 A 작업물을 나중에 적용할 수 있음
  4. A,B,C,D가 각자 기능을 구현한 경우

해결책 1

중앙 저장소를 두고 ABCD 개발자는 작업물을 중간에 올린다.

  • ABCD 개발자는 본인의 컴퓨터에서 작업 : 로컬 레포지토리
  • 중앙 저장소 : 원격 레포지토리

문제점 2

A는 이제 원격 저장소와 소통함.
그래서 BCD는 어떤 기능을 개발하는지 모르는 상황이 발생.

해결책 2

각자 메모를 해서 어떤 부분을 작업했는지 저장소에 공유하기로 함.

문제점 3

상의 끝에 일부 기능을 삭제나 수정하기로함.
문제는 A는 기능을 삭제했는데, D는 별도의 기능으로 수정함.
A가 삭제해서 업로드했는데, D가 이후에 업로드함.
=> 삭제가 되지 않고 수정된 기능으로 반영됨.

저장소를 여럿으로 만들게 되었는데
이러다 보니 별도의 프로젝트로 사용하게 됨.

해결책 3

저장소 구조화
main

  • 하위 저장소 1
  • 하위 저장소 2

최상위에 main 저장소를 만들고
개발은 하위 저장소에서 진행
개발이 완료되면 main 저장소에 전달

용어 정리
commit : 메모
history : 메모들의 모음
Pull : 저장소에서 다운로드, 동기화
Push : 저장소에 업로드
Branch : 각각의 저장소
Merge : 저장소를 상위 저장소에 합치는 것.

Git을 쓰는 이유는

Commit을 관리하기 위함.
=> 버전 관리
Git : VCS (Version Control System)

  • Git을 사용하면 CLI로 작업해야함.
    - 사용감이 그렇게 편리하진 않음
  • Github
    - Git을 시각화하여 좀 더 편리하게 사용할 수 있게 함.
profile
만성피로 개발자

0개의 댓글