Git은 컴퓨터 파일의 변경사항을 추적하고, 여러 명의 사용자들 간에 파일들의 작업을 조율 하기위한 분산 버전 관리 시스템으로 소프트웨어 개발에서 소스코드 관리에 주로 사용된다.
또한 Working Directory(Local), Staging Area, Repository 이렇게 3가지 영역으로 구분되며, 각 영역 별 역할은 아래와 같다.
이번 포스팅에서는 Git의 기본적인 명령어에 대해 정리해 보도록 하겠다.
1. 저장소(Repository) 생성 및 복제
- 로컬에 저장소 생성 (저장소를 생성할 원하는 폴더에 들어가서 아래의 명령어 실행)
- git init
- 기존 GitHub에 있는 저장소를 로컬에 복제
- 2021년 8월 13일부터 GitHub는 Git 작업을 인증할 때, 비밀번호 대신 토큰을 사용하도록 변경되었다. 따라서 Personal Access Token을 추가해서 사용해야 한다. 감사하게도 Personal Access Token을 추가하는 방법에 대해 자세히 설명을 해주신 분이 계셔서 아래에 링크를 첨부해 두었으니 참고하도록 하자.
- git clone [https://Personal Access Token@github.com/[user name]/[repo name].git ]
https://curryyou.tistory.com/344
2. 새로운 파일 생성 (in Working Directory)
- "Test Message"라는 문자가 작성된 newfile이라는 text 파일을 생성해주는 명령어
- echo "Test Message" > newfile.txt
3. Staging Area에 파일 추가
- 업데이트 된 모든 파일을 Staging Area에 추가
- git add .
- 업데이트 된 특정 파일을 Staging Area에 추가
- git add [file name]
- add 된 내역 확인
- git status
4. Repository에 commit
- Staging Area에 있는 파일을 최종적으로 Repository에 commit
- git commit -m "[commit message]"
5. 로컬(Local)의 내용을 원격 저장소(Remote Repository)에 push / 원격 저장소(Remote Repository)에서 업데이트 된 내용을 로컬(Local)로 pull
- 원격 저장소(Remote Repository)와 로컬(Local)을 연결
- git remote add origin [원격 저장소 GitHub URL]
- 로컬(Local)의 내용을 원격 저장소(Remote Repository)로 push
- git push origin master 또는 git push origin main
- origin이라는 원격 저장소의 master 또는 main 브랜치에 push
- 최근에는 GitHub에서 메인 브랜치 이름을 master가 아닌 main으로 해놓았음에 주의!
- git push origin master 또는 git push origin main
- 원격 저장소에서 업데이트 된 내용을 로컬로 pull
- 다른 사람이 원격 저장소(Remote Repository)에 업데이트한 파일이 있을 때, 원격 저장소와 내 로컬의 상태를 동일하게 만들기 위함
- git pull origin master 또는 git pull origin main
6. Commit 이력 확인
- git log
7. 파일 변경 시, 내역 확인 및 취소
- 파일 내용 변경
- echo "Test Update" >> [file name]
- 파일 내용 변경 확인
- cat [file name]
- Unstaging (Staging 취소)
- git reset
- git restore --staged [file name]
- 정규표현식을 활용하여 특정 이름을 가진 파일만 선택 가능
- ex) git restore --staged newfile*
8. Branch 생성 및 변경
- Branch 생성
- git branch [branch name]
- Branch 전환
- git checkout [branch name]
- 전환된 branch에서 commit을 하면, 기존 branch에는 업데이트가 안 되고 새로운 branch에서만 업데이트가 된다.
- ex) git push origin [branch name]
- git checkout [branch name]
9. Pull Request와 Merge
개인이 commit을 한 후, 다른 사람이 해당 코드를 리뷰하고 수정할 것이 있으면 다시 요청을 해야하는 상황이 존재한다. 이러한 경우에 활용하는 Pull Request와 Merge에 대해 알아보도록 하자.
- Pull Request 발행 (Review 의뢰자가 진행)
- GitHub에 접속 후, 원격 저장소에 들어가서 해당 commit의 pull request 버튼을 누르면 reviewer에게 pull request 메시지가 전송된다.
- Review & Comment (Review 수행자가 진행)
- Review를 진행한 뒤에 "Comment on this commit" 버튼 클릭
- Comment 대응 (Review 수행자가 진행)
- 로컬(Local)에서 코드를 수정한 후, 기존과 같은 방식으로 commit 수행
- git add .
- git commit -m "[commit message]"
- git push origin master 또는 git push origin main
- 로컬(Local)에서 코드를 수정한 후, 기존과 같은 방식으로 commit 수행
- Reveiw 확인 및 병합 (Review 수행자가 진행)
- Reveiw 진행 후, 더 이상 수정이 필요없다고 판단되면 병합(merge) 진행 >> Pull Request Merge 버튼 클릭!
여기까지 해서 Git의 기본적인 명령어들에 대해 알아보았다.
더 깊은 내용들은 필요할 때마다 구글링을 통해 찾아서 활용하도록 하자!!