저장소 생성(Git init)

로컬 저장소 버전관리를 사용

git init

// 또는 DefaultBranch 변경
git config --global init.defaultBranch [기본 브랜치명]

//변경 브랜치 확인
git config --get init.defaultBranch

스테이징(Status) 상태확인

변경사항 상태확인 수정이 있을경우 commit하기전 add를 해야 함.

git status

버전 추적(add) 스테이지 올리기

git add [파일명] 또는전체 add [.]

사용자 생성

git config --global user.name [nickName]
git config --global user.name [email]

커밋(Commit) – Repository 저장

새로운 버전을 생성하고 추적함.

git commit
git commit --help //commit 도움말
git commit -m "커밋 내용"
git commit -am "커밋 내용" //add + message 축약형

Git Push – Repository 업로드

git push <저장소명> <브랜치명>

버전확인(log)

정보확인

git log
git log [-p] //소스 차이 보기

커밋 되돌리기(reset)

현재 버전 이전으로 되돌리기 이전 버전 이후 삭제 함.

git reset [버전]
git reset [버전] [--hard]

커밋 되돌리기(revert)

현재 버전 유지하고 과거 버전을 새로운 버전으로 만듬

git revert

Rebase

// 기본 rebase
git pull --rebase

// 충돌시
git add . // 충돌해결하고
git rebase --continue // 진행

// master로부터 rebase
git pull --rebase origin master

Git기본 명령어

git config –global user.name “Your Name” Git 사용자 이름 설정
git config –global user.email “your.email@example.com” Git 사용자 이메일 설정
git init 현재 디렉터리를 Git 저장소로 초기화
git status 저장소의 상태 확인
git add <파일명> 특정 파일을 스테이징 영역에 추가
git add . 모든 변경 사항을 추가
git commit -m “커밋 메시지” 스테이징된 변경 사항을 커밋
git branch 현재 브랜치 목록 확인
git branch <브랜치명> 새로운 브랜치를 생성
git switch <브랜치명> 특정 브랜치로 이동
git switch -c <브랜치명> 새로운 브랜치를 생성하고 이동
git merge <브랜치명> 현재 브랜치에 다른 브랜치를 병합

git merge –no-ff <branch>

Fast-forward 없이 병합 커밋 생성 (히스토리를 명확히 유지)

git merge –ff-only <branch>

Fast-forward 병합만 허용, 충돌이나 별도 커밋이 필요한 경우 병합 거부

git merge –squash <branch>

브랜치의 모든 커밋을 하나의 커밋으로 압축해서 병합 (히스토리 깔끔)

git merge –abort

병합 도중 충돌 발생 시, 병합 시도를 취소하고 이전 상태로 복구

git merge –continue

충돌 해결 후 병합을 계속 진행 (Git 2.22+ 버전)

git merge –edit

병합 커밋 메시지를 수정할 수 있도록 에디터 실행

git merge –no-edit

병합 시 자동 메시지 사용, 커밋 메시지 입력 생략

git diff –staged

스테이징된 변경 내용 확인

git diff HEAD

 

마지막 커밋과 변경 사항 비교

git diff –name-only HEAD

 

변경된 파일 목록만 확인

git reset –hard <커밋해시> 특정 커밋으로 되돌림
git reset –soft HEAD~1 바로 커밋한거 취소하기
git revert <커밋해시> 특정 커밋을 취소하는 새 커밋 생성

특정 커밋을 취소하는 새로운 커밋을 생성하여 되돌림 (기존 커밋을 유지하면서 변경 사항만 되돌림)

git checkout — <파일명> 수정한 파일을 마지막 커밋 상태로 되돌림

git restore <파일명>

git restore .

수정한 파일을 복구(파일이 속한 전체 경로)

특정 파일의 변경 사항을 되돌려 작업 디렉터리 또는 스테이징 영역에서 복구함 (커밋 이력은 변경되지 않음)

git restore –staged 파일명

git restore –staged .

스테이징한 파일을 스테이징 해제하기 (git add 취소)

git rm <파일명> Git에서 파일 삭제
git stash 변경 사항을 임시 저장
git stash pop 저장된 변경 사항을 다시 적용
git tag <태그명> 새로운 태그 추가
git tag -a <태그명> -m “태그 설명” 주석 포함 태그 추가
git push origin <태그명> 태그를 원격 저장소에 푸시
git cherry-pick <커밋id> 특정 커밋을 현재 브랜치에 적용

cherry-pick은 특정 커밋만 선택하여 현재 브랜치에 적용하는 Git 명령어

즉, 한 브랜치에서 특정 커밋만 골라서 다른 브랜치에 가져오는 기능

git branch -d feature-branch

병합된 브랜치만 삭제

로컬 브랜치 삭제 (병합된 경우)

git branch -D feature-branch

병합 여부 상관없이 삭제(로컬 브랜치 강제 삭제)

git push origin –delete feature-branch

원격 브랜치 삭제

git fetch –prune

 

원격 저장소(GitHub, GitLab 등)에서 삭제된 브랜치가 로컬의 원격 브랜치 목록에 남아 있는 경우, 이를 자동으로 제거