카테고리 없음

[강의정리] 깃/깃허브 특강(내일배움캠프)

보리시스템 2022. 11. 14.

목차 

1-1. 깃이 없으면?
1-2. 버전 관리를 위한 도구 git

2-1. 깃허브
2-2. 관련 GitBash 명령어

3-1. 브랜치가 없다면?
3-2. 브랜치 버전의 분기 관리방법
3-3. 관련 GitBash 명령어

4. 충돌
5. 원격 저장소와의 4가지 상호작용

 


 

강의개요

- 강의일시 : 2022.11.14.(월) 16:00~18:00

- 담당튜터 : 강민철 튜터님 (혼자 공부하는 컴퓨터 구조+운영체제 저자)

- 강의내용 : Git에 대한 개념/이해/기능

 

 


 

강의내용

1-1. 깃이 없으면?

  • 변경 내역 확인이 어렵다
  • 작업을 되돌리기 어렵다
  • 협력하기 어렵다
기껏 만들었는데 유저 반응이 너무 안좋거나, 버그가 너무 많았을 때 기존의 버전으로 롤백한다고 가정하면 어떤 부분을 삭제/추가했는지 기억할 수 없음

=> 작업을 되돌리기 어렵다

 

1-2. 버전 관리를 위한 도구 git

버전?
- '유의미한' 변화가 결과물로 나온 것
  • 변경 내역들을 기억하며
  • 필요하다면 작업을 되돌리며
  • 여러 명의 코드를 쉽게 나누고 합치며 개발하는 것!

 

2-1. 깃허브

- git : 버전을 관리하는 도구
- sourcetree : 깃을 편히 쓰는 도구
- GitHub : 원격 저장소 호스팅 서비스 (+개발자들의 SNS)
  * 인터넷 상에서 깃으로 관리한 프로젝트를 관리해주는 서비스
- 작업 디렉터리 :  버전 관리의 대상이 위치하는 공간 (깃이 있는 디렉터리)
- 스페이스 : 후보가 올라가는 공간
- 저장소 : 버전이 만들어지고 관리되는 공간

 

    • 스페이지, 저장소는 깃이 관리하는 저장소라 실제로 볼 수 없음
    • 버전으로 올리고 싶은 사항만 스테이지에 올리면 됨
    • add한다 : 스테이지에 올린다
    • commit한다 : 버전으로서 만들어 저장소로 커밋한다
*스테이지가 필요한 이유?
무의미한 변화(로그파일(계속 쌓이는 데이터), 민감한 정보를 담고있는 파일은 버전에 넣을 필요가 없음. 기억할 필요가 없는 건 다음 버전이 될 필요가 없음. 선별하기 위해서 스테이지 단계가 있다)

 

2-2. 관련 GitBash 명령어

    • git init : 로컬 저장소 만들기
    • git status : 작업 디렉터리 상태 확인하기
    • touch 파일명.확장자 : 파일 만들기
    • git rm –cached 파일명.확장자 : 파일 삭제하기
    • git add 스테이지에 추가할 대상 : '스테이지에 추가할 대상' 스테이지에 올리기
    • git add. : 모든 변경사항 스테이지에 올리기
    • git commit : 자세한 커밋 메시지와 함께 커밋하기
    • git commit --message "커밋 메시지" : "커밋 메시지"로써 커밋하기 (--message는 --m으로 대체가능)
    • git log : 만든 버전 확인하기
    • git config --global user.name "이름” : Author 이름 지정(가급적이면 영어로 작성)
    • git config --global user.email “이메일” : 깃허브에서 사용할 이메일

 

3-1. 브랜치가 없다면?

  • 서로의 작업과 전혀 관련 없는 부분, 같은 코드를 다르게 수정한 부분 혼재
  • 일일이 수작업으로 합쳐야 함
  • 때로는 서로의 코드를 합치다 실수가 생길 수도 있음

 

3-2. 브랜치 버전의 분기 관리방법

브랜치?
- 버전의 분기
- 브랜치명 : 최초의 브랜치 master -> foo -> bar
 * 깃허브에서는 더이상 master라는 명칭을 쓰지 않고 main으로 사용

 

  1. 브랜치를 나눈다
  2. 각자의 브랜치에서 작업한다
  3. (필요하다면) 나눈 브랜치를 합친다

 

3-3. 관련 GitBash 명령어

    • git branch : 브랜치 이름 알아보기
    • git branch 브랜치명 : 새로운 브랜치 만들기
    • git checkout 브랜치명 : 해당 브랜치로 체크아웃하기
    • git checkout -b 브랜치명 : 만듦과 동시에 체크아웃 하기
    • git branch -D 브랜치명 : 브랜치 지우기
브랜치를 삭제하면 관련 변경사항은 모두 삭제되는지?
- 삭제됨

 

4. 충돌

충돌?
같은 부분을 다르게 수정했을 때 발생


<충돌 발생 시 대처법>

  1. 충돌을 해결한다 (어떤 브랜치의 내용을 반영할지 직접 선별한다)
  2. 다시 커밋한다

 

5. 원격 저장소와의 4가지 상호작용

  1. 클론 (clone)
  2. 푸시 (push)
  3. 패치 (fetch)
  4. 풀 (pull)