개발자라면 필수로 알아야 할 git!다시 한번 핵심만 정리해보쟈!!🙃
git은 분산 버전 관리 시스템으로 프로젝트 파일의 변경사항을 추적하는 시스템이다.
이를 통해 개발자들이 효율적으로 협업할 때 사용할 수 있다.
Git에서 commit은 정말 필수다. commit이란 프로젝트의 현재 상태를 나타내는 체크 포인트 또는 스냅샷으로 생각할 수 있다. 즉, 현재 버전의 코드를 커밋에 저장하는 것 커밋은 특정 시간의 코드 스냅샷 형태로 해당 repository의 커밋 기록에 남게 된다. git add
명령어 사용해 모든 파일을 staging area에 추가해주었다면 커밋을 남길 수 있다.
일반적으로 커밋을 남기는 시점은 특정 내용, 기능을 추가한 후 또는 수정 사항을 적용한 후이다!!
git commit -m"Commit message"
위 명령어를 통해 staging area에 있는 파일들을 커밋할 수 있다!
브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다.
여러명이서 동시에 작업을 할 때 다른 사람 작업에 영향을 주거나 받지 않도록 먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만든다.
Github은 Git을 사용하는 프로젝트를 위한 호스팅 서비스다.
GitHub을 사용하여 로컬 프로젝트 repository를 원격 클라우드 기반 GitHub저장소에 업로드할 수 있다.
GitHub repository는 모든 프로젝트 파일들과 코드의 히스토리를 관리할수 있게 해준다.
git flow에 대해 정리해서 다시 머릿속에 넣어보자!
Git을 통해 프로젝트를 관리하고 배포하기 위한 전략을 Git Flow
라고 한다.
Git flow는 다양한 branch를 관리하고 통합하기 위한 전략 중 하나이다.
프로젝트 진행 시 아래와 같은 흐름으로 git을 활용했다! Git flow에 대해 공부해보면 더 깊이있는 내용들이 나오지면 이번에는 패스하고 간단하게만 살펴보자!!
1.git add (새로운 파일이 생겼다는 것을 알리는 행위,아직 저장소에는 반영이 되지 않은 상태) 2. git commit( 저장소에 변경 내역이 반영된다) 3. git push ( 변경된 내용들을 동료들도 확인할 수 있게 remote서버에도 반영해야 한다) 4. git pull (remote 서버의 가장 최근의 변경 내역을 내 컴퓨터로 가져오는 행위)
Git squash는 여러번 커밋한 이력을 하나의 커밋 이력으로 만드는데 사용된다.
Git squash기능을 사용하려면 Git rebase를 사용해야 한다.
git rebase -i 명령어를 사용하여 rebase하고 아래와 같이 first commit만 남겨두고 squash를 한다.
Git merge
는 branch를 통합하는 것이며, Git rebase
는 branch의 base를 옮긴다는 의미이다.
branch는 base지점을 가지고 있어서 base에서부터 코드를 수정한다.git history를 살펴보면 branch의 base가 어디있는지 확인할 수 있다!
Git rebase를 하면 Git History가 매우 깔끔해진다.