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 config user.name $userName
- git add
- git add $fileName
- 파일을 staged로 만든다.
- git add $directoryName
- 디렉터리 내 전체(파일포함)를 staged로 만든다.
- git add .
- 현재 디렉터리 내 전체(파일포함)를 staged로 만든다.
- git add $fileName
- 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 reset $fileName
- git status
- 현재 깃이 추적하고 있는 파일들의 상태보기
- git commit
- 현재 작업 내역을 커밋 땀, 커밋 메시지 작성하는 게 editor로 열리고 작성, -m 옵션 안주고 사용함으로써 좀 더 긴 커밋메시지 작성에 유용함
- git commit -m $commitMessage
- staging area에 있는 내역으로 커밋메시지와 함께 커밋따기
- git commit --amend
- 현재 변경 내역을 직전 커밋에 update하기
- git help
- git help $gitCommand
- git 커맨드 설명서 보기
- git help $gitCommand
- git push
- 로컬 저장소를 원격 저장소에 반영하기
- git push $remoteRepositoryName $localBranchName:$remoteBranchName
- 로컬 브랜치를 원격 저장소의 브랜치에 반영, 브랜치가 없으면 생성하며 반영?
- git push -u $remoteRepositoryName $localBranchName
- 로컬 브랜치를 원격 저장소에 반영, 원격 저장소에 해당 브랜치가 없으면 생성하며 반영
- -u 옵션 으로 tracking connection이 되어, 이후 그냥 push만 해도 됨, 이는 브랜치 단위로 설정해줘야 함
- git pull
- 원격 저장소를 로컬 저장소에 반영하기
- 단위는 브랜치 단위임
- git clone
- git clone $projectGitFileAddress
- 원격 프로젝트를 로컬에 가져오기
- 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 show $commitId
- git diff
- git diff $prevCommitId $laterCommitId
- 두 커밋 비교하기
- git diff $branchName1 $branchName2
- 두 브랜치 비교하기
- git diff $prevCommitId $laterCommitId
- git tag
- git tag $tagName $commitId
- 커밋아이디에 태그부여하기
- git tag -d $tagName
- 태그 삭제하기
- git tag $tagName $commitId
- git branch
- git branch $newBranchName
- 새 브랜치를 만든다.
- git branch -d $branchName
- 브랜치를 삭제한다.
- git branch $newBranchName
- git checkout
- git checkout $branchName
- HEAD를 branchName으로 이동시킨다.
- git checkout -b $newBranchName
- 새 브랜치를 만들고, HEAD를 새 브랜치에 이동시킨다.
- git checout $commitId
- HEAD가 commitId를 가리키게 한다.(Detached HEAD)
- 이는 특정 커밋으로부터 새 브랜치를 만들 때 주로 사용한다.
- HEAD가 commitId를 가리키게 한다.(Detached HEAD)
- git checkout $branchName
- git merge
- git merge $branchName
- 현재 HEAD가 가리키는 브랜치에 branchName을 merge한다.
- git merge --abort
- merge하다가 conflict가 났는데, conflict를 잡아서 커밋하기보다는, merge 자체를 취소하고 싶을 때 사용한다.
- git merge $branchName
- git fetch
- remote repository 내 브랜치의 이력만 가져옴(pull = fetch + merge)
- git blame
- git blame $fileName
- 특정 파일을 각 라인마다 commitId, user, date가 나타난다.
- git blame $fileName
- git revert
- git revert $commitId
- 특정 커밋만 되돌리고 다시 커밋(revert commit)하기
- git revert $commitId0..$commitIdN
- commitId0 이후 부터 commitIdN까지 변경내역을 revert한 커밋을 역순으로 revert commit하기
- git revert $commitId
- git reflog
- 이 때까지 HEAD가 가리켜온 commitId 내역을 최신부터 과거 순으로 나열함, git reset으로 과거로 갔다가 최신 commitId를 알고 싶을 때 사용
- git rebase
- git rebase $branchName
- branchName의 브랜치를 base로 지정해서 두 브랜치를 합치는 방식
- git rebase $branchName
- 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
- 최근 커밋 이후로 작업했던 내용을 stack 데이터 구조로 local repository에 저장하고, working directory는 최근 커밋 내용으로 변경(임시 저장하는 용도로 사용)
- git cherry-pick
- git cherry-pick $commitId
- 다른 브랜치의 특정 커밋을 현재 브랜치에 가져와서 merge
- git cherry-pick $commitId1 $commitId2
- 다른 브랜치의 특정 커밋(s)을 현재 브랜치에 가져와서 merge
- git chrrey-pick $commitId1..$commitIdN
- 다른 브랜치의 특정 커밋(s)을 현재 브랜치에 가져와서 merge
- git cherry-pick $commitId
728x90