Git 최초 설정 [프로젝트 생성시]
Git 전역으로 사용자 이름과 이메일 주소 설정
🚨 GitHub 계정과는 별개
터미널 프로그램(iTerm2)에서 아래 명령어 실행
git config --global user.name "(사용자 이름)"
git config --global user.email "(사용자 이메일)"
설정한 사용자 이름과 이메일 주소 확인
git config --global user.name
git config --global user.email
기본 브랜치명 변경 (master salve 등 -> main)
git config --global init.defaultBranch main
GitHub remote [intellij 터미널&gitHub 연동]
git remote add origin https://github.com/zhfvkqHub/test.git
- 새로운 플젝 업로드
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/zhfvkqHub/test.git
git push -u origin main
- 기존 소스 업로드
git remote add origin https://github.com/zhfvkqHub/test.git
git branch -M main
git push -u origin main
수정된 .gitIgnore 파일 적용
git rm -rf --cached .
소스 코드 원복 Reset VS Revert
Reset : 실행 시점 이후 내역 전부 날림
Revert : 실행 시점 내역만 전 코드로 원복(반대로 실행)
Revert 사용해야 상황
- 협업 중 공유가 된 커밋 내역인 경우(reset 사용 시 충돌의 원인이 됨)
- 원복 히스토리를 남겨야 하는 경우(기록용)
reset
git log 에서 실행 시점(해당 시점 이후 내역 날림) commit uuid 복사 후
git reset --hard (uuid)
revert
git log 에서 실행 시점(해당 시점 내역만 날림) commit uuid 복사 후
git revert (uuid)
revert 내역 바로 커밋하지 않고 계속 수정 후 같이 커밋할 경우
git revert --no-commit (uuid)
Branch
- checkout 명령어가 Git2.23 버전부터 switch, restore 로 분리
-- 브랜치 생성
git branch add (브랜치명)
-- 브랜치 이동
git switch add (브랜치명)
-- 브랜치 생성과 동시에 이동
git switch -c (브랜치명)
-- 브랜치 이름 변경
git branch -m (변경할 브랜치명) (변경될 브랜치명)
-- 브랜치 삭제 (-D : 강제 삭제)
git branch -d (삭제할 브랜치명)
브랜치 병합 Merge VS Rebase
merge : 두 작업을 이어 붙이기 (새로운 커밋 생김)
rebase : 대상 브랜치에 이어 붙이기 (히스토리가 대상 브랜치에 한줄로 정리됨)
merge 사용해야하는 상황
- 브랜치의 사용 내역을 남겨야하는 상황
- 협업 시 공유된 커밋 내역의 경우
- reset 으로 되돌리기 기능을 사용해야 할 가능성이 있는 상황(merge도 하나의 커밋이기 때문에 가능)
merge
- ex. test 브랜치를 main 브랜치로 merge
: main 브랜치로 이동 후 git merge test 실행
git merge (병합할 브랜치명)
rebase
- ex. test 브랜치를 main 브랜치로 rebase
: test 브랜치로 이동 (merge와 반대) 후 git merge main 실행
git rebase (병합될 브랜치명)
-- main 브랜치로 다시 이동 후
git merge (병합할 브랜치명)