목차
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으로 사용
- 브랜치를 나눈다
- 각자의 브랜치에서 작업한다
- (필요하다면) 나눈 브랜치를 합친다
3-3. 관련 GitBash 명령어
- git branch : 브랜치 이름 알아보기
- git branch 브랜치명 : 새로운 브랜치 만들기
- git checkout 브랜치명 : 해당 브랜치로 체크아웃하기
- git checkout -b 브랜치명 : 만듦과 동시에 체크아웃 하기
- git branch -D 브랜치명 : 브랜치 지우기
브랜치를 삭제하면 관련 변경사항은 모두 삭제되는지?
- 삭제됨
4. 충돌
충돌?
같은 부분을 다르게 수정했을 때 발생
<충돌 발생 시 대처법>
- 충돌을 해결한다 (어떤 브랜치의 내용을 반영할지 직접 선별한다)
- 다시 커밋한다
5. 원격 저장소와의 4가지 상호작용
- 클론 (clone)
- 푸시 (push)
- 패치 (fetch)
- 풀 (pull)