Git CLI
📚 Reference
Smart Tiger's blog,https://seamless.tistory.com/43
LainyZine,https://www.lainyzine.com/ko/article/git-stash-usage-saving-changes-without-commit/
참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.
자주 쓰는 git 명령어
git init
현재 위치한 디렉토리를 git 저장소로 만들어준다.
이 명령어를 입력 후 $ ls -a
를 입력하면 .git
파일이 생성된다.
.git
파일에는 버전 관리를 위한 메타 데이터를 포함하고, 현 디렉토리의 버전 관리를 가능케한다.
$ git init
git config
글로벌 옵션을 적용하면 ~/.gitconfig
파일에 정보를 저장하고, 적용하지 않으면 현재 위치한 디렉토리의 <current directory>/.git/config
파일에 정보를 저장한다. 로컬에서 커밋할 때 이 정보를 사용한다.
$ git config --global user.name <user name>
$ git config --global user.email <user email>
$ cat ~/.gitconfig
[user]
name = Your Name
email = [email protected]
$ git config user.name <user name>
$ git config user.email <user email>
$ cat <current directory>/.git/config
[user]
name = Your Name
email = [email protected]
# 정보 확인
$ git config --global user.name
$ git config --global user.email
$ git config user.name
$ git config user.email
# 정보 삭제
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --unset user.name
$ git config --unset user.email
git remote
push
또는 pull
을 하기 위한 원격 저장소의 주소를 추가/삭제하는 기능을 한다.
$ git remote -v
$ git remote add <remote name> <url>
$ git remote remove <remote name>
$ git remote show <remote name> # 리모트 브랜치와 로컬 브랜치간의 관계를 확인할 수 있다.
$ git remote prune <remote name> # 리모트 브랜치의 유효하지 않은 참조를 지운다.
git pull
원격 저장소의 브랜치 내용을 로컬 저장소로 가져온 후 변경 사항을 병합하고 충돌 체크를 해준다.
$ git pull <remote name>
$ git pull <remote name> <branch name> # 아래 명령어를 한번에 실행하는 것과 동일하다.
$ git fetch <remote name> <branch name>
$ git merge FETCH_HEAD
git fetch
원격 저장소의 브랜치 내용을 로컬 저장소로 가져온다.
$ git fetch <remote name> <branch name>
git merge
변경 사항을 병합하고 충돌 체크를 해준다.
$ git merge FETCH_HEAD
git clone
원격 저장소의 git 프로젝트를 로컬 저장소로 가져온다.
$ git clone <url> # 아래 명령어를 한번에 실행하는 것과 동일하다.
$ git init
$ git remote add origin <url>
$ git pull origin master
$ git clone <url> <folder name> # 폴더명 지정도 가능하다.
git log
현재 브랜치의 히스토리를 보기 위해 사용한다.
$ git log
git status
현재 워크플레이스의 상태를 보기 위해 사용한다.
$ git status
git add
워크플레이스에서 작업하던 내용을 스테이징 영역으로 넘겨준다.
$ git add . # 수정한 파일 전부를 넘긴다.
git restore
수정한 내용을 되돌릴 때 사용한다.
$ git restore .
git commit
스테이징 영역의 내용에 메세지를 작성하여 로컬 저장소로 넘겨준다.
$ git commit -m "message" # 메세지 작성
$ git commit --amend -m "message" # 메세지 수정
git push
로컬 저장소에 내용을 원격 저장소로 넘겨준다.
$ git push <remote name> <branch name>
$ git push -u(--set-upstream) <remote name> <branch name> # -u 옵션을 통해 내용을 넘겨줄 원격 저장소를 지정해두면 다음 푸쉬부터는 git push만으로 목적지를 찾아간다.
git reset
스테이징 영역에 작업 내용이나 커밋 이력을 되돌릴 때 사용하며, 원격 저장소에 올라간 상태에서 사용하지 않는다.
$ git reset # 스테이징 영역에 작업 내용을 되돌린다.
$ git reset --soft HEAD^ or <commit id> # 커밋된 내용을 스테이징 영역으로 되돌린다.
$ git reset --mixed HEAD^ or <commit id> # 커밋된 내용을 워크플레이스로 되돌린다.
$ git reset --hard HEAD^ or <commit id> # 커밋된 내용 및 작업 중이던 내용을 제거한다.
git revert
원격 저장소에 올라간 커밋 이력을 되돌릴 때 사용하며, 되돌린 이력을 남긴다.
$ git revert HEAD^ or <commit id>
git branch
브랜치 목록 및 생성, 제거할 때 사용한다.
$ git branch -v
$ git branch -a
$ git branch -d|-D <branch name>
$ git branch <branch name>
git switch
브랜치 이동 시 사용한다.
$ git switch <branch name>
$ git switch - # checkout으로 특정 커밋으로 이동 시 원래 브랜치로 돌아올 때 사용한다.
git checkout
특정 커밋 이력으로 이동 시 사용한다.
$ git checkout <commit number>
git cherry-pick
다른 브랜치의 특정 커밋을 가져오고 싶을 때 사용한다.
$ git cherry-pick <commit number>
$ git cherry-pick --quit # 체리픽 끝내기
git stash
작업 도중 다른 요청이 들어오면 작업하던 걸 다른 장소에 보관해놓고 요청한 작업이 끝나면 기존 작업을 다시 꺼내올 때 사용한다.
워크플레이스와 스테이징 영역에 있는 수정 내용들을 옮긴다.
$ git stash # 작업하던 내용을 다른 장소에 보관한다.
$ git stash -u # Untracked files도 함께 옮겨준다.
$ git stash save -m <message> # 메세지와 함께 보관한다.
$ git stash list # 보관한 내용의 목록을 보여준다.
$ git stash pop # 보관한 내용을 워크플레이스로 꺼내온다.
$ git stash pop --index # 보관한 내용을 그대로 꺼내온다.(스테이징 영역)
Author And Source
이 문제에 관하여(Git CLI), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gusdnr814/Git-CLI저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)