2021. 10. 15. 21:38ㆍ프로그래밍/기타등등
Git
- 분산 버전 관리 시스템(VCS)
- 프로젝트 파일의 변경사항을 추적하는 시스템
- 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있다.
👨🏫️ 코드 버전 관리를 하는 이유
- 수정할 때 마다 파일을 새로 만들면 관리가 힘들기 때문에
- 언제든 이전 버전의 코드로 돌아갈 수 있기 때문에
- 이력을 남기기 위해
- 하나의 프로젝트를 두고 여러명의 개발자들이 협업할 수 있기 때문에
GitHub
일단 Github 마스코트는 고양이가 아니다. 옥토캣이다... 중요..
- Git을 사용한 프로젝트들의 저장소
- 개발자들의 Social Network
Git 과 GitHub
Git은 프로젝트의 버전관리를 도와주는 시스템이고, GitHub는 Git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스.
Let's go 명령어
1. 저장소 초기화
git init
변경사항을 추적/관리할 디렉토리(저장소)에서 git init
.git
디렉토리가 생성된다.
2. 상태 확인
git status
- 어떤 파일이 변경되었는지, 어떤 파일이 추가되었는지 등을 전부 보여준다.
3. Staging area에 파일 추가하기
git add .
git add
명령어를 통해 우리가 원하는 파일들을 staging area로 추가해줄 수 있다.- staging area 에 추가되면
commit
을 남길 수 있게 된다.
4. Commit 남기기
git commit -m "Commit message"
- 커밋은 특정 시간의 코드 스냅샷의 형태로 해당 repository의 커밋 기록에 남게 된다.
- 새 커밋을 남기려면 staging area에 파일을 추가 한 다음 커밋을 남기는 프로세스를 반복해야 한다.
5. Commit 이력 보기
git log
프로젝트의 모든 커밋 내역을 확인할 수 있다.
만약 특정 커밋 시점의 코드로 되돌리고 싶다면, 아래 명령어를 사용할 수 있다.
git checkout <commit-hash> # 커밋의 실제 hash 값
6. Branch 다루기
:: branch 생성
git branch <new-branch-name>
- 새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영하여 생성된다.
:: branch 전환
git checkout <branch-name>
:: branch 생성과 동시에 전환
git checkout -b <new-branch-name>
:: branch 확인
git branch
:: branches 병합
git merge <branch-name>
:: branch 삭제
git branch -d <branch-name>
7. 로컬 repository와 깃헙 repository 연결
git remote add origin https://github.com/<your-username>/<your-repo-name>.git
git push -u origin master
git remote
를 입력해서 origin이라고 출력되면 정상적으로 연결된 것
8. 로컬 repository를 깃헙 repository로 Push
git push origin master
9. repository clone
git clone <github-repo-link>
- remote repo를 내 컴퓨터로 받아오기 위해, 해당 repo를 다운받고 싶은 경로로 이동한 뒤 git clone 명령어를 실행한다.
- 해당 경로에 clone 받은 Github repo의 이름을 그대로 딴 폴더가 생성된다.
10. Pull Request (PR) 생성하기
커스텀 브랜치를 push 하고 master 브랜치에 적용될 준비가 되었다면,
Pull Request (PR) 라는 것을 통해 프로젝트 오너 (혹은 팀 리더) 에게 내가 작업한 브랜치의 작업내용을 master 브랜치에 반영해달라는 요청을 보낼 수 있다.Pull Request 에서는 해당 repository 를 열람할 수 있는 권한이 있는 개발자들이 작업내용에 대한 리뷰를 해주거나, 변경 사항을 확인할 수 있다. (master 브랜치로 합쳐지기 전에 확인해야하기 때문에)
해당 링크를 클릭하면, Pull Request 를 생성할 수 있는 페이지로 이동.
거기서 해당 PR의 제목과 어떤 내용을 담고 있는지 설명하는 Description을 작성할 수 있다.작성을 완료했다면, 하단에 'Create pull request' 버튼을 눌러 마무리한다.
이때부터는 함께 협업하는 개발자들이 방금 만든 PR을 리뷰, 분석하고 댓글까지 달아줄 수 있다. 모든 리뷰 내용이 반영된 후 master 브랜치와 충돌이 발생하지 않았다면, 해당 PR은 master 브랜치로 merge 될 준비가 완료된 것이다.
11. Git add 취소하기
git reset HEAD [file]
12. Git commit 취소하기
// commit 목록 확인
$ git log
// [방법 1] commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
$ git reset --soft HEAD^
// [방법 2] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
$ git reset --mixed HEAD^ // 기본 옵션
$ git reset HEAD^ // 위와 동일
$ git reset HEAD~2 // 마지막 2개의 commit을 취소
// [방법 3] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git reset --hard HEAD^
참고 사이트
'프로그래밍 > 기타등등' 카테고리의 다른 글
우분투에서 깃허브 자동 로그인 설정 (0) | 2021.12.12 |
---|---|
TIL50 | Git Workflow & Rebase (0) | 2021.11.17 |
[Linux] Linux 파일 구조 & Terminal 명령어 (0) | 2021.10.12 |
[Ubuntu 18.04] 맥분투를 만들어봅시다 ! (0) | 2021.09.27 |
애자일 프로세스 모델(애자일 방법론) (0) | 2021.06.27 |