TIL23 | Git & GitHub

2021. 10. 15. 21:38프로그래밍/기타등등

반응형

git_github

 

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) 생성하기

pullrequest

  • 커스텀 브랜치를 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^

 

참고 사이트

[Git] git add 취소하기, git commit 취소하기, git push 취소하기

반응형