Git&GitHub

[Git&GitHub] Git 설정 및 프로젝트 관리

빅콜팝 2023. 4. 22. 21:57
728x90
반응형

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 (병합할 브랜치명)

 

728x90
반응형