Git 과 버전관리
버전 관리의 1등 : Git
클라우드 저장소의 1등 : GitHub
Git + GitHub 를 같이 사용하면 팀 프로젝트 및 회사에서 효율적인 개발 협업을 할 수 있다.
여러명의 개발자가 하나의 서비스를 만든다면?
- 따로 작업을 하다가 내가 원할 때 코드를 합칠 수 있으면 좋겠고, 백업도 좀 쉽게 할 수 있으면 좋을 거 같다..
-> Git 을 사용하면 된다.
버전 관리 시스템 Git
- 단순히 ctrl + z 를 눌러 이전 상태로 되돌리는 것이 아니라 원하는 시점 마다 깃발을 꽂고 (버전을 만들고) 이들 간에 자유롭게 돌아다닐 수 있다.
- 내가 만든 버전 뿐만 아니라 동료가 만든 버전으로 이동할 수 있고, 동료와 내 버전을 비교해서 최신본으로 코드를 업데이트를 할 수 있다.
GitHub 에 올리기
- 컴퓨터 프로젝트 폴더에 Git 을 사용할 것이라고 명령 (git init)
- 코딩 후 내가 변경한 파일 중 올리길 원하는 것만 선택 (git add)
- 선택한 파일들을 한 덩어리로 만들고 설명 적어주기 (git commit -m "message")
- GitHub 사이트에서 Repository 만들기
- 프로젝트 폴더에 GitHub 저장소 주소 알주기 (git remote add)
- 내 컴퓨터에 만들었던 프로젝트를 GitHub 에 올리기 (git push)
Git & GitHub With CLI
git init
- 숨겨진 .git 폴더가 만들어지며, 이것을 로컬 저장소라고 한다.
- 로컬 저장소에 내가 만든 버전 정보 , 원격 저장소 주소 등이 저장된다.
- 원격 저장소에서 내 컴퓨터로 코드를 받아오면 로컬 저장소가 자동으로 생긴다.
-> 버전 정보를 가져와야 하기 때문
git add
- 내가 변경한 파일 중 올리길 원하는 것만 선택
git commit -m "message"
- Commit : 하나의 버전
- 선택한 파일들을 한 덩어리로 만들고 설명 적어주기
git log
커밋은 의미 있는 변동 사항을 묶어서 만든다.
- 어떠한 파일을 수정했다면 이것을 왜 수정했는지를 손쉽게 파악할 수 있다.
- 커밋 메세지는 매우 중요하다.
지금까지는 내 로컬 저장소에서만 버전관리를 하고 있기 떄문에 GitHub 에 올려서 다른 사람들과 함꼐 버전 관리를 해야한다.
git remote add origin
- git remote add origin GitHub 저장소 주소
- GitHub 원격 저장소 주소를 로컬 저장소에 알려준다. (origin)
git push origin
- git push origin main(master)
이번에는 다른 사람이 만든 저장소를 받아와보자.
git clone
- 원격 저장소를 내 컴퓨터에 받아오기
- git clone GitHub 저장소 주소 .
- 마지막에 . 을 찍어줘야 현재 폴더에 내려받을 수 있다.
- 만약 안 찍는다면 새 폴더에 생성된다.
git pull
- 원격 저장소의 데이터 가져오기
- 개발자A 가 원격 저장소에 올렸는데 개발자B 는 개발자A 가 올린 코드도 가져오고 싶을 때 pull 을 하면 된다.
콜라보레이터 추가
GitHub 저장소 -> Settings -> Manage access -> Invite a collaborator -> git hub username -> 해당 user 의 email 에서 ok 하면 해당 저장소에 push 권한을 가지게된다.
시나리오
- A 가 A 노트북에 저장소 폴더를 만들고 git init 으로 로컬 저장소를 생성
- A 가 로컬 저장소에 파일을 만들고 git add -> git commit -m "message" 로 커밋을 생성
- GitHub 에서 Repository 를 만들고 그 주소를 로컬 저장소에 알려주기 위해 git remote add origin 저장소 주소 명령어를 입력
3-1. 로컬 저장소에서 만든 커밋을 원격 저장소에 푸시 하기 위해 git push
- B 도 개발을 시작하기 위해서 원격 저장소에 올리온 파일을 git clone 명령어로 가져온다.
- 개발을 한 후 GitHub 저장소에 push 하기 위해 B 계정을 Collaborator 로 추가 하고 commit 하고 push 한다.
- B 가 올린 파일을 A 가 받아오기 위해서 git pull 명령어를 사용한다.