본문으로 바로가기

Git: 자주 사용하는 명령어 (branch, stash, clean 등)

category Tools/Git 2019. 4. 27. 09:00

branch

branch 생성 : git branch [branch_name]

branch 생성 후 이동 : git checkout -b [branch_name]

생성된 다른 branch 이동 : git checkout [branch_name]

branch 삭제 : git branch -D [branch_name]

원격 저장소의 브랜치만 삭제하기 : git push origin --delete [branch_name]

remote branch에 올리고 연동 : git branch --set-upstream-to origin/[branch_name]

local/remote 모든 branch 보기 : git branch -a

local branch 보기 : git branch

remote의 branch를 local에 생성(remote branch와 다르게 이름 변경) : git checkout -b [new_local_branch_name] origin/[remote_branch_name]

remote의 branch를 local에 생성(remote branch 이름 유지) : git checkout --track origin/[remote_branch_name]

현재의 local branch 이름 변경git branch -m [new_local_branch_name]

Stash

다른 브랜치로 checkout을 해야 하는데 아직 현재의 작업이 끝나지 않을 경우 작업 중이던 파일을 stash를 사용해 임시로 저장해 둔다.

stash는 추적 중인 파일에 한하여(add되어 있는 경우의 파일만) 저장이 가능하다는 점을 유의해야 한다.

stash 생성하기(기본 옵션은 tarcking 중인 파일만) : git stash

untracked 파일까지 포함하여 stash 생성하기 : git stash --include-untraked / git stash -u

저장된 stash 리스트 보기 : git stash list

가장 최근 stash한 내용 적용하기 : git stash apply

특정 시점에 stash한 내용을 적용하기 : git stash apply {stash ID}

{특정} stash 삭제하기 : git stash drop {stash ID}

Clean

작업하고 있던 파일을 Stash하지 않고 단순히 그 파일들만 치워버리고 싶을 때 사용한다. 보통 Merge나 외부 도구가 만들어낸 파일을 지우거나 이전 빌드 작업으로 생성된 각종 파일을 지울때 사용한다.

좀더 안전한 방법은 git stash -all 명령어를 사용해서 stash에 변경 사항을 저장하고, 현재의 branch에서 삭제된 파일들이 원하는 결과일 경우에 stash에 저장한 내역을 지우는 편이 좀더 안전하다. 잘못 지웠을 경우에 clean은 돌이킬 수 없다.

워킹 디렉토리 청소하기/ 작업하고 있던 파일 모두 지우기(기본 옵션은 추적중이지 않은 파일만 지우기) : git clean

 워킹 디렉토리 청소하기/ 작업하고 있던 파일 및 하위 디렉토리까지 모두 지우기 : git clean -f -d

디렉토리 청소시 어떤 파일이 지워지는지 미리 알아보기 : git clean -d -n

fetch

fetch 명령어를 실행하면, 로컬에서 Remote 저장소의 최신 이력을 branch 별로 가져와 확인할 수 있다. git fetch origin을 통해 저장소의 정보를 로컬에 있는 remote 전용 branch에 동기화해주어야 한다. git branch 명령어를 수행할 경우에는 동기화하는 Remote branch의 branch 리스트는 보여지지 않는다. 리모트 저장소의 이력은 git branch -a 을 했을 경우 보여지는 remote/[branch]에 동기화된다.

pull을 하면 원격 저장소의 내용을 remote/[브랜치명]으로 가져와 이 정보들과 local에 있는 브랜치와 자동으로 Merge 작업을 실행하는 것이다. pull은 fetch + merge를 한번에 하는 작업과 같다. 만약 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 사용할 수 있다.

원격 저장소의 데이터를 로컬에 가져오기만 하기 : git fetch origin

PUSH

원격 저장소의 브랜치만 삭제하기 : git push origin --delete [branch_name]

 

Remote

기존의 Remote 저장소의 주소를 변경한다. template이나 다른 레포지토리의 소스를 git clone하여 가져왔을 경우에, 코드를 가공하여 나의 새로운 프로젝트로 사용하고 싶을 수도 있다. 이럴 경우에는 아래와 같이 원격 저장소의 URL을 변경해준다.

git remote -v : 현재 원격 저장소 URL 확인하기

git remote set-url origin [new remote repository address] : 새로운 원격 저장소 URL로 업데이트 하기

 

참고

프로 Git 2판 - 그림으로 이해하는 Git의 작동 원리와 사용법

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

Git : cherry-pick으로 Commit 재정렬하기  (0) 2019.04.28