S1 Unit 12. Git으로 협업하기

나현·2022년 9월 15일
0

학습일지

목록 보기
14/53
post-thumbnail

💡 이번에 배운 내용

  • Section1.
    웹 프론트엔드 개발의 기초지식을 기반으로 스스로 단순한 Web App을 만들 수 있다.
  • Unit12. git: 로컬 git repository를 다루는 방법에 대해 학습하고 실습한다.

느낀점

저번에 CLI학습을 하면서 잠깐 겪어봤지만 이번에는 좀 더 집중적으로 git에 대해 학습하는 시간이었다. 사실 이번 유닛의 제목과 주요 주제는 솔로 프로젝트이다. 더미 데이터를 받아와 객체 정보를 바탕으로 DOM을 실제로 그려보는 프로젝트인데 그렇다고 Git 공부를 소홀히 할 수는 없었다.
고민 끝에 유닛 이름을 git으로 바꾸모 이번 포스팅에서는 git을 중심으로 학습하여 정리하였다.
예전에 실무에서도 git 활용 방법은 매우 중요했다. 아무래도 실제로 계속 작업해보지 않으면 경험을 쌓기 어려운 내용이라 git 실습 때 좀 버벅였던 것 같다.
오늘도 무사히 학습일지 포스팅을 마치고, 솔로 프로젝트의 완성에 집중해야 겠다!


키워드

local repository, remote repository, staging area, fork, pull, push, commit, 커밋 메시지


학습내용

git은 분산형 버전 관리 시스템으로 코드를 효율적으로 보관할 수 있다.
이 코드를 보관하는 장소를 리포지토리(Repository)라고 하며
로컬(local)과 원격(remote) 리포지토리로 나뉜다.

Ch1. Local Repository

나의 컴퓨터에서 로컬 리포지토리를 지정해놓으면 쉽게 원격 리포지토리로 옮길 수 있고 코드를 쉽게 관리할 수 있다.

  • git init : 코드를 저장할 디렉토리에 로컬 리포지토리를 생성
  • git add : staging area에 파일,디렉토리를 업로드한다.
  • git commit : staging area에 있는 파일,디렉토리를 로컬 리포지토리에 기록한다.
    (마치 스냅샷처럼 파일,디렉토리의 변경사항을 저장한다.)
  • git status : 현재 리포지토리 상태를 확인할 수 있다.

1) git init

임의의 일반 디렉토리를 일종의 작업공간(workspace)이라고 가정하자. 이 디렉토리를 로컬 리포지토리로 바꾸게 되면 기존의 작업공간에 staging area, commit 공간이 추가된다.
work space -> work space, staging ara, commit
이렇게 디렉토리를 로컬 리포지토리로 바꾸는 과정을 터미널에서 git init 명령어로 생성할 수 있다.

2) git add <파일 및 디렉토리>

생성된 로컬 리포지토리에서 코드를 작성하면 변경사항을 staging area에 저장해야 한다.
workspace에서 작성한 코드를 staging area로 옮기는 것을 터미널에서 git add <파일 및 디렉토리> 명령어로 수행할 수 있다.

#git add 예시
git add index.html  

#이러면 모든 변경사항이 staging area에 저장된다.
git add .   

3) git commit

staging area에 있는 코드의 변경사항을 commit으로 옮길 때 터미널에서 git commit 명령어를 사용한다.
옵션으로 뒤에 -m 을 붙여 커밋 메시지를 작성할 수 있다.

git commit -m "220915 index.html 주석 추가"

옵션이지만 협업을 위해 커밋 메시지는 항상 적는 것이 좋다.
또한 커밋 메시지는 간결하고 분명하게 작성해야 한다.

4) git status

현재 리포지토리의 상태를 확인할 수 있다. 터미널에 git status 명령어를 사용하여 주로 stagina area에 저장된 코드의 변경사항, 현재 브랜치(후의 설명 참고), 커밋 여부 등을 확인할 수 있다.

  • untracked files : 코드가 변경되었으나 staging area에 추가되지 않은 파일들을 보여준다.
  • changes to be committed : 커밋되지는 않았으나 stagina area에 add된 파일들을 보여준다.

이처럼 commit하기 전에 항상 git status로 staging arae를 확인하는 것이 좋다.

참고로 브랜치(branch)는 원래 코드를 복사하여 독립적으로 개발하는 것을 의미한다. 나중에 추가 학습로 학습할 예정이다.
관련 링크: Git - 브랜치란 무엇인가

Ch2. Remote Repository

리모트 리포지토리는 온라인 원격 저장소로 협업을 위해서 주로 공유하여 사용한다. 대부분 github 페이지에서 볼 수 있는 여러 사용자들의 리포지토리가 원격 리포지토리에 해당된다.

  • git remote add : 로컬 리포지토리에 원격 리포지토리의 주소(git url)을 추가한다.
  • git push : 로컬 리포지토리에 기록(커밋)한 내용을 원격 리포지토리에 반영한다.
  • git clone : 원격 리포지토리에 있는 내용을 로컬 리포지토리로 복사한다.
    ex) git clone <url>
  • git pull : 원격 리포지토리의 변경사항을 나의 리포지토리에 적용한다.

1) git remote add <원격 리포지토리> <url>

로컬 리포지토리에 원격 리포지토리의 주소(url)를 원하는 '주소명'으로 등록한다.

2) git push <원격 리포지토리> <브랜치>

'원격 리포지토리'의 해당 '브랜치'로 로컬 리포지토리의 기록(커밋한 사항)을 적용한다.

3) git clone <url>

포크한 나의 원격 리포지토리를 로컬 리포지토리에 복사하는 것은 터미널에서 git clone 명령어로 가능하다.

4) git pull <원격 리포지토리> <브랜치>

원하는 원격 리포지토리의 변경사항을 나의 로컬 리포지토리로 당겨(pull)온다. 즉 적용한다.

5) fork란

다른 원격 리포지토리를 자신의 깃헙(github) 원격 리포지토리로 복사하는 것을 말한다. 이렇게 따로 포크한 프로젝트는 원래의 프로젝트에 영향을 주지않고 별개로 작업이 가능하다.

  • pull request : 나의 원격 리포지토리의 작업 변경사항을, 원래 포크했던 다른 사용자의 원격 리포지토리에 반영해달라고 요청하는 작업이다. 말 그대로 당겨(pull)가 달라고 요청(request)한다는 의미.
  • pull : 포크했던 원격 리포지토리의 변경사항을 나의 원격 리포지토리에 반영한다. 말 그대로 당겨(pull)온다는 의미.

질문해보기 및 추가 학습

1. Git 학습에 유용한 사이트
git에 대한 개념이 헷갈릴 때마다 쉽게 참조할 수 있어서 학습할 때 도움이 되었다.

profile
프론트엔드 개발자 NH입니다. 시리즈로 보시면 더 쉽게 여러 글들을 볼 수 있습니다!

0개의 댓글