GUI 버전이 있긴하지만, 사용성 면에서 CLI가 낫기 때문에 활용도가 떨어짐
brew install git
git --version
git config --global user.name "이름"
git config --global user.email "이메일"
Git으로 관리하는 프로젝트 저장소
Git Repository에는 Local과 Remote 두 가지 종류가 있음
Local Repository: 본인의 컴퓨터에 저장된 Local 버전의 프로젝트 저장소
Remote Repository: 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소
팀 작업에 활용하며, 프로젝트 코드 공유, 다른 사람의 코드 리뷰, 로컬 버전 병합 및 변경사항 적용이 가능
git init
위 명령어를 통해 프로젝트 폴더 내 숨겨진 .git
디렉토리를 생성하며, 해당 저장소에 대한 모든 변경사항을 추적/관리
commit
: 프로젝트의 현재 상태를 나타내는 체크포인트
현재 버전의 코드를 commit에 저장하며, commit 간 앞뒤로 이동하여 프로젝트 코드의 변경사항을 확인
일반적으로 commit을 남기는 시점: 특정 내용, 기능 추가 또는 수정사항 적용 이후
git status
파일의 추가/삭제, 변경 등에 관한 이력을 조회
위 명령어로 git에서 관리(추적)되지 않는 파일이 있다면, 해당 파일들을 staging area로 추가할 수 있으며,
모든 파일이 git으로 관리되고 있다면 위 명령어를 통해 모든 변경 사항을 확인하고, 커밋을 남기기 위해 staging area로 추가
git add file.js
git add file.js file2.js file3.js
git add .
git commit -m "Commit message"
큰 따옴표 안에 repository에 커밋하는 변경사항을 설명하는 커밋 메세지를 남겨 커밋의 내용을 식별하며,
위 명령어로 커밋을 하는 동시에 커밋에 대한 세부 내용이 표시됨
새 커밋을 남기려면 staging area에 파일을 추가하고 커밋을 남기는 프로세스를 반복
git log
위 명령어를 통해 log를 조회하며, [작성자, hash값, 날짜와 시간, 커밋 메세지 등] 커밋에 대한 자세한 정보가 표시
git checkout <commit-hash>
<commit-hash>
에 git log
를 통해 조회된 커밋의 실제 hash 값을 넣어줌
staging area에 추가하고 싶지 않거나, git을 통해 관리하지 않아도 되는 파일이 있다면 .gitignore
파일을 생성하여 해당하는 파일명과 폴더명을 나열
각 파일, 폴더는 새로운 줄에 입력
// 예시
.DS_*
*.log
logs
**/*.backup.*
**/*.back.*
node_modules
bower_components
master
라는 이름의 브랜치를 생성git branch <new-branch-name>
새로 만들어진 브랜치는 현재 프로젝트 코드를 반영하여 생성
보통 development
브랜치를 별도로 만들어서 새로운 기능 테스트, 버그 확인을 수행한 후,
최종적으로 master(main)
브랜치에 병합하여 안정성을 높일 수 있음
git checkout <branch-name>
원하는 브랜치로 이동하면, 해당 브랜치의 마지막 커밋 내용이 작업 트리에 펼쳐짐
추후 남기는 커밋은 전환한 브랜치에 추가되며, 해당 브랜치에만 영향
git checkout -b <new-branch-name>
git branch
<branch-name>
)를 현재 브랜치에 병합git merge <branch-name>
git branch -d <branch-name>