728x90
  • git init
    • 로컬 working directory 내에 repository를 생성(.git)
  • git config
    • git config user.name $userName
      • 현재 유저의 현재 프로젝트 내에서 user name 설정
    • git config user.email $userEmail
      • 현재 유저의 현재 프로젝트 내에서 user email 설정
    • git config alias.$alias $command
      • 현재 유저의 현재 프로젝트 내에서 git command alias 설정
  • git add
    • git add $fileName
      • 파일을 staged로 만든다.
    • git add $directoryName
      • 디렉터리 내 전체(파일포함)를 staged로 만든다.
    • git add .
      • 현재 디렉터리 내 전체(파일포함)를 staged로 만든다.
  • git reset
    • git reset $fileName
      • 파일을 staged에서 unstaged로 돌려놓는다.
    • git reset --{soft, mixed, hard} $commitId
      • 현재 브랜치가 가리키는 커밋을 바꾼다.
        • soft는 커밋만
        • mixed는 커밋+staging area
        • hard는 커밋 + staging area + working directory
    • git reset --{soft, mixed, hard} {HEAD^, HEAD~N, HEAD@{N}}
      • HEAD^는 브랜치가 직전 commitId를 가리키게 한다.
      • HEAD~N은 브랜치가 N번째 이전 commitId를 가리키게 한다.
      • HEAD@{N}은 git reflog를 통해 나온 HEAD가 가리킨 commit 위치정보로, 그 때의 commitId로 브랜치가 가리키게 한다.
  • git status
    • 현재 깃이 추적하고 있는 파일들의 상태보기
  • git commit
    • 현재 작업 내역을 커밋 땀, 커밋 메시지 작성하는 게 editor로 열리고 작성, -m 옵션 안주고 사용함으로써 좀 더 긴 커밋메시지 작성에 유용함
    • git commit -m $commitMessage
      • staging area에 있는 내역으로 커밋메시지와 함께 커밋따기
    • git commit --amend
      • 현재 변경 내역을 직전 커밋에 update하기
  • git help
    • git help $gitCommand
      • git 커맨드 설명서 보기
  • git push
    • 로컬 저장소를 원격 저장소에 반영하기
    • git push $remoteRepositoryName $localBranchName:$remoteBranchName
      • 로컬 브랜치를 원격 저장소의 브랜치에 반영, 브랜치가 없으면 생성하며 반영?
    • git push -u $remoteRepositoryName $localBranchName
      • 로컬 브랜치를 원격 저장소에 반영, 원격 저장소에 해당 브랜치가 없으면 생성하며 반영
      • -u 옵션 으로 tracking connection이 되어, 이후 그냥 push만 해도 됨, 이는 브랜치 단위로 설정해줘야 함
  • git pull
    • 원격 저장소를 로컬 저장소에 반영하기
    • 단위는 브랜치 단위임
  • git clone
    • git clone $projectGitFileAddress
      • 원격 프로젝트를 로컬에 가져오기
  • git log
    • 커밋 히스토리 보기
    • git log --pretty=oneline
      • 커밋 히스토리를 예쁘게 보기(커밋아이디와 커밋메시지만 보여줌)
    • git log --pretty=oneline --all
      • 모든 브랜치의 커밋 히스토리를 보여줌
    • git log --pretty=oneline --all --graph
      • 모든 브랜치의 커밋 히스토리를 브랜치 단위로 나눠 보여줌
  • git show
    • git show $commitId
      • 커밋이 담고 있는 변경내역 확인하기
    • git show $tagName
      • 태그와 연결된 커밋을 찾아준다.
  • git diff
    • git diff $prevCommitId $laterCommitId
      • 두 커밋 비교하기
    • git diff $branchName1 $branchName2
      • 두 브랜치 비교하기
  • git tag
    • git tag $tagName $commitId
      • 커밋아이디에 태그부여하기
    • git tag -d $tagName
      • 태그 삭제하기
  • git branch
    • git branch $newBranchName
      • 새 브랜치를 만든다.
    • git branch -d $branchName
      • 브랜치를 삭제한다.
  • git checkout
    • git checkout $branchName
      • HEAD를 branchName으로 이동시킨다.
    • git checkout -b $newBranchName
      • 새 브랜치를 만들고, HEAD를 새 브랜치에 이동시킨다.
    • git checout $commitId
      • HEAD가 commitId를 가리키게 한다.(Detached HEAD)
        • 이는 특정 커밋으로부터 새 브랜치를 만들 때 주로 사용한다.
  • git merge
    • git merge $branchName
      • 현재 HEAD가 가리키는 브랜치에 branchName을 merge한다.
    • git merge --abort
      • merge하다가 conflict가 났는데, conflict를 잡아서 커밋하기보다는, merge 자체를 취소하고 싶을 때 사용한다.
  • git fetch
    • remote repository 내 브랜치의 이력만 가져옴(pull = fetch + merge)
  • git blame
    • git blame $fileName
      • 특정 파일을 각 라인마다 commitId, user, date가 나타난다.
  • git revert
    • git revert $commitId
      • 특정 커밋만 되돌리고 다시 커밋(revert commit)하기
    • git revert $commitId0..$commitIdN
      • commitId0 이후 부터 commitIdN까지 변경내역을 revert한 커밋을 역순으로 revert commit하기
  • git reflog
    • 이 때까지 HEAD가 가리켜온 commitId 내역을 최신부터 과거 순으로 나열함, git reset으로 과거로 갔다가 최신 commitId를 알고 싶을 때 사용
  • git rebase
    • git rebase $branchName
      • branchName의 브랜치를 base로 지정해서 두 브랜치를 합치는 방식
  • git stash
    • 최근 커밋 이후로 작업했던 내용을 stack 데이터 구조로 local repository에 저장하고, working directory는 최근 커밋 내용으로 변경(임시 저장하는 용도로 사용)
      • branchA에서 stash한 것을 branchB에서 적용 가능
    • git stash list
      • 임시 저장 리스트
    • git stash apply
      • 임시 저장된 것 중 가장 최신 저장 내역을 반영
      • git stash apply STASH@{N}
        • 특정 stash를 반영
    • git stash drop
      • 임시 저장된 것 중 가장 최신 저장 내역 삭제
      • git stash drop STASH@{N}
        • 특정 stash 삭제
    • git stash pop
      • 임시 저장된 것 중 가장 최신 저장 내역 apply and then drop
      • git stash pop STASH@{N}
        • 임시 저장된 것 중 특정 stash을 apply and then drop
  • git cherry-pick
    • git cherry-pick $commitId
      • 다른 브랜치의 특정 커밋을 현재 브랜치에 가져와서 merge
    • git cherry-pick $commitId1 $commitId2
      • 다른 브랜치의 특정 커밋(s)을 현재 브랜치에 가져와서 merge
    • git chrrey-pick $commitId1..$commitIdN
      • 다른 브랜치의 특정 커밋(s)을 현재 브랜치에 가져와서 merge
728x90

+ Recent posts