Git CLI

11735 단어 gitgit

📚 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 # 보관한 내용을 그대로 꺼내온다.(스테이징 영역)

좋은 웹페이지 즐겨찾기