1. Git, GitHub
팀 단위 프로젝트를 진행하게 되면 다른 개발자의 코드도 같이 섞이기 때문에 더욱 중요하다고 볼 수 있다.
그렇게 Git에 입문하면서 Git과 Github라는 용어를 자주 듣는데, '똑같은 것 아닌가?'라는 생각을 하곤 했다.
그래서 Git과 Github의 정의부터 확인하려고 한다.
- Git : 로컬에서 작업하여 기록을 저장 / 코드의 버전 관리
- GitHub : 웹사이트 / Git의 버전 기록을 올려 협업을 가능하게 해주는 온라인 서비스
* 원격으로도 작업이 가능
즉, Git이 버전 기록을 저장하는 버전 관리 툴이라면 GitHub는 이러한 기록을 공유하는 것이라고 보면 된다.
2. Git 순서도
아래 그림을 보면서 Git 순서도에 대한 큰 그림을 파악해 보자.
[그림 1]에 시작 부분부터 하나씩 설명할 예정이다.
★로컬 컴퓨터에서 폴더 또는 파일을 만든 다음 Git을 시작하는 것을 전제로 한다.★
1) Git 로컬 저장소 생성
$ git init
해당 폴더가 Git 저장소임을 지정한다. (새로운 Git 저장소를 생성)
2) 파일 상태 확인
$ git status
해당 Git 저장소에 변동이 있는지 확인한다.
(파일을 생성하면 Git이 추적하여 변동이 있음을 확인한다.)
3) 인덱스에 파일 추가
$ git add [파일명]
# 예시
$ git add test.txt
인덱스에 파일을 추가한다는 것은 인덱스로 확정지어 올리기 전 대기 상태로 만드는 것을 의미한다.
※ Git의 Repository 구조
작업폴더 → 인덱스 → 저장소
(working directory → staging Area → Repository)
4) 변경사항 확정
$ git commit -m "메시지"
# 예시
$ git commit -m "처음으로 commit 해봅니다."
대기 상태인 파일을 실제로 인덱스를 생성하며 버전을 기록한다.
5) Git의 원격저장소(Repository)로 저장
$ git remote add [원격 저장소 별칭] [주소]
# 예시
$ git remote add origin https://github.com/test12345
원격저장소의 주소를 복사해온 후, 로컬저장소와 원격저장소를 연결해주는 작업을 먼저 한다.
★ 원격 저장소의 별칭??
위의 코드에서 origin은 해당 원격 저장소의 별칭이다.
https://github.com/test12345라는 원격 저장소의 주소를 모두 입력할 필요 없이 origin이라는 별칭을 주어 origin으로 해당 URL과 통신하겠다는 의미이다.
6) 로컬 저장소 기록을 원격저장소(Repository)로 전송
$ git push [원격 저장소 별칭] [브랜치명]
# 예시
$ git push origin main
https://github.com/test12345 주소와 통신하고 싶다는 가정 하에 진행한다.
위의 5번 코드에서 origin을 주소 'https://github.com/test12345'의 별칭으로 지정했으므로 원격 저장소 별칭에는 origin을 입력해준다.
브랜치명은 기본적으로 많이 사용하는 main으로 입력했다.
위의 예시 코드를 해석하자면 origin 별칭에 해당 하는 주소의 main 브랜치에 로컬 저장소의 코드 및 기록을 전송하겠다는 의미가 된다.
단순히 코드만 전송하는 것이 아니라 기록도 같이 전송함으로써 버전 관리가 되는 것이다.
[Image]
1) [Icons made by DinosoftLabs] (https://www.flaticon.com/authors/dinosoftlabs)
2) [Freepik] (https://www.freepik.com)
3) [Icons made by dmitri13] (https://www.flaticon.com/authors/dmitri13)
4) [Icons made by Smartline] (https://www.flaticon.com/authors/smartline)