개발자라면 꼭 알아야하는 툴은 바로 Git과 github이다.
꼭꼭 잘 알아둬야 하기에 블로그 작성을 통해 정리해보려고 한닷~!
Git의 공식 명칭은 분산버전관리 시스템(VCS)
이다.
쉽게말하면 프로젝트 파일의 변경 사항을 추적하는 시스템이라고 할 수 있다. 이를 통해 개발자들은 프로젝트의 변경사항을 기록하고 특정 시점의 버전으로 언제든 돌아갈 수 있다. 이런 버전 관리 시스템은 많은 사람들이 효율적으로 함께 작업하고 프로젝트를 중심으로 협업할 때 사용할 수 있다.
🍓Repositories(저장소)
Git을 사용할 때는 repository라는 용어를 잘 알아야 한다. Git repository는 Git으로 관리하는 프로젝트 저장소이다.
🍑Initializing a repository
새 저장소를 만들고 Git으로 프로젝트 관리를 시작하려면 터미널에서 프로젝트 폴더로 이동 후 다음 명령어를 입력해야 한다.
git init
이 명령어는 프로젝트 폴더 내에 숨겨진 .git 디렉토리를 생성한다. 이제 Git은 현재 저장소에 대한 모든 변경사항을 추적/관리하게 된다.
🍒Staging and committing code
Git에서 commit이란 프로젝트의 현재 상태를 나타내는 체크 포인트 또난 스냅샷. 다시 말해, 현재 버전의 코드를 커밋에 저장한다고 생각하면 된다.
커밋 히스토리에 필요한만큼 커밋을 생성할 수 있고 커밋 간 앞뒤로 이동하여 프로젝트 코드의 다른 변경 사항을 확인할 수 있다. 일반적으로 커밋을 남기는 시점은 특정 내용, 기능을 추가한 후 또는 수정사항을 적용한 후 정도를 들 수 있다.
staging area
에 추가해야 한다.🥥checking the status(상태 확인)
git status
터미널에서 위 명령어를 입력해 repository의 현재 상태를 확인할 수 있다. git status 명령어를 통해 git으로 관리(추적)되고 있지 않던 파일이 있다면 해당 파일들을 staging area로 추가해줄 수 있다.
모든 파일이 Git으로 관리되고 있는 시점에서는 git status명령어를 통해 모든 변경사항을 확인할 수 있고 커밋을 남기기 위해 staging area로 추가해줘야 한다.
🥭staging files(staging area에 파일 추가하기)
프로젝트 폴더에서 git add
라는 명령어를 통해 우리가 원하는 파일을 staging area로 추가해줄 수 있다.
git add .
위와 같이 모든 파일을 한번에 추가할 수도 있다.
🍉Making commits(커밋 남기기)
커밋은 특정 시간의 코드 스냅샷의 형태로 해당repository의 커밋 기록에 남게 된다.
git add
명령어를 사용하여 모든 파일을 staging area에 추가 해주었다면 이제 커밋을 남길 준비가 된 것!
git commit -m "Commit message"
커밋 메시지는 repository에 커밋하는 변경 사항을 설명하는 짧은 summary여야 한다. 위 명령어를 실행하면 터미널에 방금남긴 커밋에 대한 세부 내용이 보여진다.
🍋Commit history
프로젝트의 모든 커밋 내역을 보려면 아래 명령어를 입력하면 된다.
git log
git log 명령어를 통해 보여지는 log는 각 커밋에 대한 자세한 정보를 담고 있다.(작성자, hash값, 날짜와 시간, 그리고 커밋메세지)
특정 커밋 시점의 코드로 되돌리고 싶다면, 아래 코드를 사용해라
git checkout <commit-hash>
브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기에 여러 작업을 동시에 진행할 수 있다~!
저장소를 처음 만들면 Git은 바로 master라는 이름의 브랜치를 만들어 둔다. 이 새로운 저장소에 새로운 파일을 추가하거나 추가한 파일 내용을 변경해 그 내용을 저장(커밋)하는 것은 모두 'master'라는 이름의 브랜치를 통해 처리할 수 있는 일이 된다.
Creating a new branch (브랜치 생성)
git branch <new-branch-name>
새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영하여 생성된다.
changing branches(브랜치 전환하기)
git checkout <branch-name>
위 명령어를 통해 다른 브랜치로 이동할 수 있다.
브랜치 생성과 동시에 생성된 브랜치로 이동하고 싶다면 기존 checkout 명령어에 -b라는 flag를 추가해주면 된다.
github는 git repository를 위한 호스팅 플랫폼이다.
github없이도 git을 사용할 수 있지만 다른 개발자와 같은 프로젝트를 두고 협업할 때는 어렵다;
한마디로 Github은 Git을 사용하는 프로젝트를 위한 호스팅 서비스이다.
GitHub repository는 모든 프로젝트 파일들과 코드의 히스토리를 관리할 수 있게 해주고, public 혹은 private 하게 협업할 수 있게 해준다.
내가 작업할 환경인 브랜치를 생성하려고 함
git branch feature/chloekim
브랜치 생성 잘되었는지 확인하려면 git branch +enter
내가 만든 브랜치로 이동하려면 아래와 같이!
git checkout feature/chloekim
1)변경사항에 대해 확인하려면 git status +enter (어떤 파일을 수정,추가,제거했는지 확인 가능)
2)git add .(stage에 추가, 이제 커밋메시지 남길 준비가 되었다는 뜻)
3) 멀티라인 커밋작성
git commit-> 에디터 열림
에디터 아래 template에 맞춰 커밋 메시지 작성
:wq로 저장
분류
Add - 레이아웃/기능추가
Remove - 내용 삭제( 폴더/파일 삭제)
Modify - 수정(버튼 색깔 변경/폰트변경)
Fix -버그/오류 해결
Refactor- 코드 리팩토링( 멘토리뷰반영/스스로 리팩토 링/중복코드 제거/불필요 코드제거/성능개선)
ex) Add: 이미지 슬라이더 추가
4)제대로 git commit했는지 확인하려면 git log +enter
5)git push origin feature/bogyeongkim
이렇게 푸쉬가 시작된다! 푸쉬를 했으면 브랜치를 궁극적으로 마스터브랜치와 합쳐야 하니까 pull request를 해야함
6)푸쉬를 하면 링크가 하나뜨는데 거기로 가보자. 그 다음 pull request만드는 페이지로 이동한다.