DevOps/Git

[Git] 명령어 빠르게찾기

문스코딩 2019. 10. 15. 01:20

Basic

git --version

git --version

git init

git init

git clone

git clone

git clone http://

git status

git status

git add

git add

  • -i 대화형 모드가 시작되며 파일의 일부분만 스테이징이 가능
  • -p 대화형 모드없이 바로 패치 모드 사용
git add .
git add src

git commit

git commit -m "<message>"

git commit -m "Which one best naver or kakao?"

git commit -C HEAD -a --amend

지정한 커밋의 로그 메시지를 다시 사용하여 기존 커밋을 수정

-c 사용시 기존 메시지를 수정할 수 있는 편집기 실행

git diff

스테이지영역과 현재 작업트리의 차이점 확인

  • --cached 스테이징영역과 저장소의 차이
  • HEAD 저장소, 스테이징영역, 작업트리의 차이점을 모두 확인
  • --stat 변경사항에 대한 통계
    • image-20191015002146574
git diff

git mv

git mv

git mv a.txt b.txt

git checkout

git checkout

스테이징이나 커밋하지 않은 파일의 변경내용을 취소하고 원래 상태로 되돌림

git checkout b.txt

git push

git push

git push origin master

git pull

git pull

git pull origin master

git fetch

원격 저장소의 변경사항을 가져와 원격 브랜치를 갱신

git fetch

git stash

git stash
git stash pop

Log

git log

  • -<number> 출력 로그 갯수 설정
  • --pretty=oneline
    • --pretty=format:%h %s
  • -p 변경된 내용 같이 출력
  • --since="5 hours"
  • --before="5 hours"
  • --graph 브랜치 트리 출력
git log
git log -10
git log --oneline --all -- graph

git blame

git blame

git blame -L 10,15

git blame -M

Config

git config

--global 옵션은 전역 설정에 대한 옵션이며 현재 프로젝트에만 적용할 때는 설정하지 않음

git config (--global) --list

git config (--global) user.name

git config (--global) user.email

git config (--global) color.ui

터미널에 표시되는 메시지에 칼라를 설정

git config --global color.ui "auth"

git remote

git remote add <name> <url>

새로운 원격 저장소 추가

git remote add origin http://~

git remote

추가한 원격저장소 목록 확인

git remote

git remote show <name>

해당 원격 저장소의 정보 확인

git remote show origin

git remote rm <name>

원격 저장소 제거

git remote rm origin

Branch

git branch

  • -r 원격 저장소의 브랜치 확인
  • -d 삭제
  • -a
git branch
git branch <branch_name>
git branch -r
git branch -d <branch_name>
git branch -a

git branch

git branch -m

  • -m 존재하는 브랜치를 새로운 브랜치로 변경 ( Force! )
git branch origin_branch target_branch
git branch -m origin_branch force_target_branch

git checkout

git checkout /

git checkout -b

git checkout -t /

git checkout <branch_name>
git checkout -b <branch_name>
git checkout -t <remote_url>/<branch_name>

git merge

git merge

  • --squash 브랜치명의 모든 커밋을 하나의 커밋으로 만듬
git checkout master
git merge target

git tag

git tag

Commit

git revert

git revert

기존 커밋에서 변경한 내용을 취소하고 새로운 커밋 생성 (Rename 아님, Log 유지)

git revert <commit_key>
  • -n 바로 커밋하지 않고 --continue 옵션을 호출하여 진행
  • --continue -n 옵션을 진행
  • --abort -n 옵션을 취소
git revert -n <commit_key>

git status
===
"You are currently reverting commit <commit_key> "
~
===

git revert --continue
git revert --abort

git reset

git reset

  • --soft 이전 커밋을 스테이징영역으로 전환
  • --hard 이전 커밋을 저장소와 작업트리에서 제거
# 최근 1개 커밋 취소 
git reset HEAD^ 

git rebase

git rebase -i

  • -i 대화형모드로 커밋 순서를 변경하거나 합치는 작업 가능

git cherry-pick

git cherry-pick

특정 커밋만을 선택해 현재 브랜치에 커밋으로 만듬

  • -n 작업트리에 합치지만 커밋은 하지 않아 여러개의 커밋을 합쳐서 커밋 가능
git cherry-pick <commit_name>

SubModule

git submodule

git submodule

연관된 하위 모듈 조회

git submodule add

새로운 하위 모듈을 해당 경로에 추가

추가하고 초기화하지 않으며 커밋 해쉬 앞에 마이너스(-) 표기

git submodule init

서브모듈 초기화

git submodule update

서브 모듈 변경사항 적용

ETC

git archive

git archive --format=tar --prefix=/<branch_name || tag_name> | gzip > .tar.gz

git archive --format=zip --prefix=/<branch_name || tag_name> | gzip > .zip

해당 브랜치나 태그를 압축파일로 만듬

  • --prefix 압출파일이 해당폴더 안에 생성되도록 처리

git mergetool

설정에 merge.tool 값에 있는 머지툴을 찾아 실행

git gc

저장소의 로그 최적화

로그가 변경되지 않고 저장 방식만 최적화

  • --aggressive 더 자세하게 최적화

git rev-parse --show-toplevel

git 저장소내에 입력시 Root Dir를 반환

GitFlow

참조

반응형

'DevOps > Git' 카테고리의 다른 글

[Git] Gitako - GitHub file tree  (0) 2022.06.13
[Git] init & status  (0) 2021.02.04
[Git] cherry-pick  (0) 2019.06.03
[Git] stash, reset  (0) 2019.06.03
[Git] Github Wiki 작성방법  (0) 2019.04.18