💡 이번에 배운 내용
- 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) 리포지토리로 나뉜다.
나의 컴퓨터에서 로컬 리포지토리를 지정해놓으면 쉽게 원격 리포지토리로 옮길 수 있고 코드를 쉽게 관리할 수 있다.
임의의 일반 디렉토리를 일종의 작업공간(workspace)이라고 가정하자. 이 디렉토리를 로컬 리포지토리로 바꾸게 되면 기존의 작업공간에 staging area, commit 공간이 추가된다.
work space -> work space, staging ara, commit
이렇게 디렉토리를 로컬 리포지토리로 바꾸는 과정을 터미널에서 git init 명령어로 생성할 수 있다.
생성된 로컬 리포지토리에서 코드를 작성하면 변경사항을 staging area에 저장해야 한다.
workspace에서 작성한 코드를 staging area로 옮기는 것을 터미널에서 git add <파일 및 디렉토리> 명령어로 수행할 수 있다.
#git add 예시
git add index.html
#이러면 모든 변경사항이 staging area에 저장된다.
git add .
staging area에 있는 코드의 변경사항을 commit으로 옮길 때 터미널에서 git commit 명령어를 사용한다.
옵션으로 뒤에 -m 을 붙여 커밋 메시지를 작성할 수 있다.
git commit -m "220915 index.html 주석 추가"
옵션이지만 협업을 위해 커밋 메시지는 항상 적는 것이 좋다.
또한 커밋 메시지는 간결하고 분명하게 작성해야 한다.
현재 리포지토리의 상태를 확인할 수 있다. 터미널에 git status 명령어를 사용하여 주로 stagina area에 저장된 코드의 변경사항, 현재 브랜치(후의 설명 참고), 커밋 여부 등을 확인할 수 있다.
이처럼 commit하기 전에 항상 git status로 staging arae를 확인하는 것이 좋다.
참고로 브랜치(branch)는 원래 코드를 복사하여 독립적으로 개발하는 것을 의미한다. 나중에 추가 학습로 학습할 예정이다.
관련 링크: Git - 브랜치란 무엇인가
리모트 리포지토리는 온라인 원격 저장소로 협업을 위해서 주로 공유하여 사용한다. 대부분 github 페이지에서 볼 수 있는 여러 사용자들의 리포지토리가 원격 리포지토리에 해당된다.
로컬 리포지토리에 원격 리포지토리의 주소(url)를 원하는 '주소명'으로 등록한다.
'원격 리포지토리'의 해당 '브랜치'로 로컬 리포지토리의 기록(커밋한 사항)을 적용한다.
포크한 나의 원격 리포지토리를 로컬 리포지토리에 복사하는 것은 터미널에서 git clone 명령어로 가능하다.
원하는 원격 리포지토리의 변경사항을 나의 로컬 리포지토리로 당겨(pull)온다. 즉 적용한다.
다른 원격 리포지토리를 자신의 깃헙(github) 원격 리포지토리로 복사하는 것을 말한다. 이렇게 따로 포크한 프로젝트는 원래의 프로젝트에 영향을 주지않고 별개로 작업이 가능하다.
1. Git 학습에 유용한 사이트
git에 대한 개념이 헷갈릴 때마다 쉽게 참조할 수 있어서 학습할 때 도움이 되었다.