07
17

 

 

 

 

 

 

TL; DR

$ git add README.md                   # README.md 파일 stage에 추가 
$ git add -p                                   # 변경사항 한 덩어리씩 추가
$ git commit -m "커밋 내용"          # stage에 올린 파일 커밋하기
$ git commit --amend                  # stage파일 + 최상단 커밋
$ git push origin develop               # origin develop에 push
$ git push --force origin develop   # 강제 push

$ git log --oneline -- backend/     # 폴더 기준으로 커밋보기
$ git show 44a01b0                      # 특정 커밋 내역 보기

$ git stash                                     # 임시 저장

$ git reset 6c8e2ba                      # 6c8e2ba 까지 취소 (--hard O)
$ git revert 6c8e2ba                     # 6c8e2ba 을 취소하는 커밋 만들기 

$ git fetch origin master                # master 저장소 내역 가져오기
$ git rebase origin/master              # master 저장소 내역으로 base 갱신하기
$ git rebase --continue                 # 충돌났을 때 해결하고 add, continue 
$ git rebase --abort                      # rebase 취소하기

 

 

 

 

Git 설정

# GitHub 계정 이메일 주소 및 이름 커밋 내역 저자(author)정보로 찍힘
$ git config --global user.email "이메일"
$ git config --global user.name "이름"

# 설정 확인하기
$ git config --list

 

 

 

 

Branch

# branch 보기
$ git branch 

# develop 브랜치 만들기 
$ git branch -c develop

# develop 브랜치 삭제 (-D: 강제 삭제)
$ git branch -D develop
$ git bracnh -d develop

# develop 브랜치로 이동
$ git checkout develop
$ git switch develop

 

 

 

 

Add / Commit / Push

# 현재 파일 상태 확인하기
$ git status

# 수정한 내용 확인하기
$ git diff
# README.md 파일 stage에 추가 
$ git add README.md

# 변경사항 한 덩어리씩 추가
$ git add -p

# 현재 디렉토리에 있는 모든 파일 추가
$ git add .

# stage에 올린 파일 커밋하기
$ git commit -m "커밋 내용"

# stage에 있는 변경사항을 최상단 커밋에 합치기
$ git commit --amend

# origin develop에 push
$ git push origin develop

# remote 저장소를 local 저장소 커밋으로 강제 push하기
$ git push --force origin develop

 

 

 

 

Log / Shortlog / Show

# 깃 커밋 로그 보기
$ git log

# 커밋 diff 보기
$ git log -p

# 깃 커밋 로그 한 줄로 보기 (wc -l 로 라인 수 = 커밋 수 세기 O)
$ git log --oneline
$ git log --oneline | wc -l

# 로그 최신순부터 10개 보기
$ git log --oneline -10

# 날짜 기준 으로 보기
$ git log --oneline --after=2021-10-01 --before=2021-10-10

# 옛날 커밋부터 보기
$ git log --oneline --reverse

# 병합 커밋 제외하고 보기
$ git log --oneline --no-merges

# 특정 폴더(backend/)를 기준으로 보기 (-- 띄어쓰기 해야함)
$ git log --oneline -- backend/
# 사용자별 커밋 개수 세기 & line number 붙이기
$ git shortlog -sn 
$ git shortlog -sn | nl

# 특정 커밋 내역 보기
$ git show 44a01b0

# 특정 커밋에서 수정한 파일 확인하기 & 개수 세기
$ git show 6c8e2ba | grep "diff --git"
$ git show 6c8e2ba | grep "diff --git" | wc -l

 

 

 

 

Stash / Reset / Revert

# 임시 저정하기 & 복구
$ git stash
$ git stash pop
# add 명령 취소 (stage에 올라간 파일 내리기)
$ git reset

# 올라간 파일 내리면서 변경도 삭제하기 (최신 커밋으로 돌아가기)
$ git reset --hard

# 변경 사항들 stage에 올리면서 특정 커밋 ID 상태로 가기
# --hard는 변경 사항들 삭제하고 가기
$ git reset 6c8e2ba
$ git reset --hard 6c8e2ba

# 특정 커밋 삭제하기 (삭제하는 커밋찍기)
$ git revert 6c8e2ba

# 파일 수정 내용 삭제하기 (최신 커밋으로 돌아가기)
$ git checkout -- README.md
$ git restore README.md

 

 

 

 

Rebase

# base commit을 새로 갱신하기
# develop 브랜치에서 작업하는데 master 브랜치에 커밋이 찍혔다고 가정하자.
# develop 브랜치의 base commit을 master 브랜치 것으로 바꿔야한다.

# 아래로 develop 브랜치에서 하는 커맨드 !

# origin master 브랜치 내역을 가져온다 (pull = fetch + merge)
$ git fetch origin master

# rebase 시작하기
$ git rebase origin/master

# 같은 부분을 수정했어서 충돌이 났으면, 해결하라고 한다.
# 충돌을 해결한 내역을 stage에 올리고(커밋X) rebase를 마저 진행하면 끝
$ git add .
$ git rebase --continue

# rebase 그만두기
$ git rebase --abort
# 중간에 커밋 끼워넣거나 지우기 등

# root 부터 커밋 내역 불러오기 => 그 중 이동할 곳 edit으로 변경
$ git rebase -i --root

# add/commit(끼워넣기) reset(지우기) --amend(커밋 합치기) 등 하기
# rebase 복구하기. 충돌나면 해결한 후 add . 한 후 continue
$ git rebase --continue

 

 

 

'개발 > 기타' 카테고리의 다른 글

Postman 환경 변수 설정하기  (0) 2024.10.07
Redis 란?  (0) 2022.07.29
[Python] pip install 시 microsoft visual c++ 14.0 or greater is required 해결  (0) 2022.05.11
Window에서 direnv 설치  (0) 2022.05.03
[MongoDB] MongoDB 설치하기  (0) 2022.03.14
COMMENT