[Pre-course] 2021. 10. 14

GYUBIN ·2021년 10월 20일
0

Git

Git ?

: 공식 명칭은 분산 버전 관리 시스템 (VCS)으로 프로젝트 파일의 변경 사항을 추적하는 시스템이다
Git을 통해 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있다

Git은 개인 혹은 팀 간의 프로젝트를 관리하는 데 가장 널리 사용되고 있는 툴이니 잘 알아두도록 하자

VCS를 안한다면

 1. 수정할 때 마다 최종, 최최종, 진짜_최종, 진짜진짜_최종 처럼 새로운 파일을 자꾸 만들게 된다
 2. 파일을 수정하다가 실수해서 오류가 뜨는데 뭘 만졌는지 모르겠다..아
 3. 이 파일 마지막으로 누가 수정한거야 ? (범인 찾기)
 4. 협업할 때 USB에 넣어서 파일 공유하기

등등 생각만 해도 끔찍하다

Repositories (저장소)

: Git repository는 Git으로 관리하는 프로젝트 저장소로 두 가지 종류가 있다

 1. Local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
 2. Remote repository - 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소 (ex. Github)

명령어

1. Initializing a repository

git init

Git으로 프로젝트 관리를 시작하려면 원하는 디렉토리로 이동하여 명령어를 입력한다
해당 장소에 .git 디렉토리를 생성하고 해당 저장소에 대한 모든 변경사항을 추적/관리한다

2. Checking the status (상태 확인)

git status

어떤 파일이 변경되었는지, 어떤 파일이 추가되었는지 등을 전부 보여준다

3. Staging files (Staging area에 파일 추가하기)

git add .

우리가 원하는 파일들을 staging area 로 추가하고 커밋을 남길 수 있게 해준다
. 은 모든 파일/폴더를 의미한다
.이 아닌 파일 이름을 사용해서 특정 파일만 추가할 수 있다

4. Making commits (커밋 남기기)

git commit -m "Commit message"

특정 시간의 코드 스냅샷의 형태로 해당 repository의 커밋 기록에 남게된다
새 커밋을 남기려면 staging area에 파일을 추가 한 다음 커밋을 남기는 프로세스를 반복해야 한다

5. Commit history

git log

프로젝트의 모든 커밋 내역을 볼 수 있다
log는 각 커밋에 대한 자세한 정보를 담고 있습니다. (작성자, hash 값, 날짜와 시간, 그리고 커밋 메세지)

git checkout <commit-hash>

위 명령어를 통해 특정 커밋 시점의 코드로 되돌아 갈 수 있다

Branches

: 독립적으로 어떤 작업을 진행하기 위한 개념이다
  각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다

사용 방법

다수가 동시 작업을 할 때는

  1. 서로의 작업에 영향을 주거나 받지 않도록 메인 브랜치에서 자신의 작업 전용 브랜치를 만든다
  2. 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용한다

1. Creating a new branch (브랜치 생성하기)

git branch <new-branch-name>

새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영하여 생성된다

2. Changing branches (브랜치 전환하기)

git checkout <branch-name>

프로젝트에 존재하는 모든 브랜치를 확인하고 싶다 ?
 ➡ git branch

3. Merging branches (브랜치 병합하기)

git merge <branch-name>

A 라는 브랜치에서 작업한 내용을 B 라는 브랜치에 적용하고 싶을 때 사용
ex. 특정 브랜치에서 테스트까지 완료했다면 master 브랜치에 구현내용을 적용시킨다

4. Deleting a branch (브랜치 삭제하기)

git branch -d <branch-name>



GitHub

GitHub ?
: Git repository를 위한 호스팅 플랫폼이다
  GitHub를 사용해야 다른 개발자와 같은 프로젝트를 두고 협업하거나 내 코드를 공유할 수 있다

Using GitHub

1. repository 생성 후 코드 push

'New repository' 를 통해 repositiry를 생성하고 git push 명령어를 통해 로컬 Git repository 의 코드를 GitHub repository 로 업로드 해준다

git remote add origin https://github.com/<your-username>/<your-repo-name>.git
git push -u origin master

git push 명령어를 실행하면 GitHub 유저네임과 비밀번호를 입력하라는 prompt 가 뜬다

2. repository 에 변경사항 남기기

변경사항이 있으면 다시 push 를 해줘야 GitHub repo 가 업데이트 된다

git add .
git commit -m "Change greeting"
git push origin master

3. repository 클론하기 (clone)

다른 연결 방법으로 GitHub repo 를 먼저 생성한 뒤 clone 을 받아 내 로컬환경에 다운로드 후 프로젝트를 시작할 수 있다
'Clone or download' 에서 repository 주소를 복사하고 git clone 명령어를 실행하면 된다

git clone <github-repo-link>

4. GitHub 에 브랜치 push 하기

checkout을 통해 push 하려는 브랜치로 이동하여 커밋, 푸시해주면 된다

git add .
git commit -m "message"
git push origin "branch_name"

5. Pull Request (PR) 생성하기

브랜치를 push 하고 master 브랜치에 적용될 준비가 되었다면 Pull Request를 통해 프로젝트 오너 (혹은 팀 리더) 에게 내가 작업한 브랜치의 작업내용을 master 브랜치에 반영해달라는 요청을 보낼 수 있다

Pull Request에서는 해당 repository 를 열람할 수 있는 권한이 있는 개발자들이 작업내용에 대한 리뷰를 해주거나 변경 사항을 확인할 수 있다 (master 브랜치로 합쳐지기 전에 확인해야하기 때문)

모든 리뷰 내용이 반영된 후 master 브랜치와 충돌이 발생하지 않았다면, 해당 PR은 master 브랜치로 merge 될 준비가 완료된 것이다

6. Conflicts (충돌)

만약에 충돌이 생겼다면 개발자가 직접 코드를 비교해 충돌을 해결하고 merge 를 마무리 해야한다

7. GitHub 으로부터 변경사항 pull 하기

Pull Request 를 통해 master 브랜치를 업데이트하면 로컬 repository와 GitHub 에 있는 master 는 서로 다른 내용을 가지고 있게 된다
이 때 git pull 명령어를 통해 remote 의 최신화된 코드를 내 로컬 repo 에 반영할 수 있다

git pull origin master

0개의 댓글

관련 채용 정보