-
왕초보를 위한 Git 명령어 모음집 (1)IT 이야기 2024. 2. 2. 10:00
이 글을 읽는 법
Git에는 수많은 명령어가 있습니다. 이번 글에서는 개발 팀에 입사한 초보 개발자가 협업하면서 겪게 될 시나리오를 토대로 다음과 같은 Git 명령어를 정리합니다:
- Git 최초 설정: git config
- 로컬 저장소와 원격 저장소의 개념 이해하기: git init, git clone, git remote, git push, git fetch, git pull
- 로컬 저장소의 세 가지 단계: git status, git add, git commit, git diff, git restore, git reset, git stash
- 커밋과 브랜치의 개념 이해하기: git switch, git merge, git cherry-pick
- 커밋 로그 그래프로 원하는 커밋 검색하기: git log, git show, git config alias.*, git checkout
각 섹션은 다음과 같은 흐름으로 진행됩니다:
- 학습 목표: 어떤 목표를 달성할 수 있는지 설명합니다.
- 사전 지식: 명령어를 실습하기 전에 필요한 사전 지식을 설명합니다.
- 명령어 실습: Git 명령어를 실습합니다.
- 문제 풀이: 실습한 명령어를 활용하여 문제를 풀어봅니다.
목차
왕초보를 위한 Git 명령어 모음집 1탄
1. Git 최초 설정
2. 로컬 저장소와 원격 저장소의 개념 이해하기
3. 로컬 저장소의 세 가지 단계왕초보를 위한 Git 명령어 모음집 2탄
1. 커밋과 브랜치의 개념 이해하기
2. 커밋 로그 그래프로 원하는 커밋 검색하기1. Git 최초 설정
Git을 설치하고 나면 사용 환경을 설정할 수 있습니다. 한 번 설정하면 Git은 이 설정에 따라 동작합니다.
학습 목표
- Git을 처음 설치하고 나서 사용자 이름과 이메일을 설정할 수 있습니다.
- 개인 프로젝트에 적용되는 설정과 회사 프로젝트에 적용되는 설정을 구분해서 설정할 수 있습니다.
사전 지식
Git의 설정 파일은 적용되는 범위에 따라 세 가지로 나뉩니다:
system
: 시스템 전체에 적용되는 설정 파일입니다./etc/gitconfig
파일에 저장됩니다.global
: 현재 사용자에게만 적용되는 설정 파일입니다.~/.gitconfig
파일에 저장됩니다.local
: 현재 작업 중인 저장소에만 적용되는 설정 파일입니다..git/config
파일에 저장됩니다.
Git은 설정 파일을 읽을 때 가장 넓은 범위에서 가장 좁은 범위로, 즉
system
,global
,local
순으로 불러옵니다. 같은 설정이 여러 파일에 존재할 경우, 좁은 범위의 설정이 우선 적용됩니다. 예를 들어,global
설정 파일에user.name
설정이 있더라도,local
설정 파일에 같은user.name
설정이 있다면,local
설정 파일의user.name
설정이 적용됩니다.
명령어 실습Git을 처음 설치하고 나서 사용자 이름과 이메일을 설정합니다:
$ git config --global user.name datalater $ git config --global user.email the7mincheol@gmail.com
만약 이름에 공백 문자열이 있을 경우 따옴표로 감싸야 합니다(예: "Min Cho"). 이메일을 설정할 때는 GitHub 계정에 등록한 이메일을 사용하는 것을 권장합니다. GitHub에서 커밋을 보여줄 때 커밋에 기록된 이메일 주소를 토대로 GitHub 프로필 사진을 표시합니다.
설정한 내용을 확인합니다:
$ git config --global --get user.name datalater $ git config --global --get user.email the7mincheol@gmail.com
문제 풀이Q. 기존에 사용자 이름을
datalater
로 사용하고 있었는데, 새로운 회사에 입사하여 영어 이름Min
을 쓰게 되었습니다. 회사 프로젝트에서 작업 후 커밋을 해보니 커밋 작성자 이름이datalater
로 나옵니다. 개인 프로젝트에서는datalater
를 그대로 사용하고, 회사 프로젝트에서는Min
으로 바꾸고 싶습니다. 어떻게 하면 될까요?A.
local
스코프 옵션을 넣어서 새로운 사용자 이름을 설정하면 됩니다:$ cd ~/grepp/company-project $ git config --get user.name datalater $ git config --local user.name Min $ git config --get user.name Min
Q. 현재 프로젝트에 적용되는 모든 Git 설정을 한번에 확인하고 싶어요. 어떻게 하면 되나요?
A. 다음 옵션을 함께 사용하면 됩니다:
$ git config --list --show-origin --show-scope system file:/opt/homebrew/etc/gitconfig credential.helper=osxkeychain global file:/Users/cheo/.gitconfig user.email=the7mincheol@gmail.com global file:/Users/cheo/.gitconfig user.name=datalater local file:.git/config user.name=Min ...
--list
: 모든 설정을 출력합니다.--show-origin
: 설정이 저장된 파일의 경로를 출력합니다.--show-scope
: 설정이 적용되는 범위를 출력합니다.
Q. 설정 파일을 코드 에디터에서 편집하고 싶어요. 어떻게 하면 되나요?
A.
--edit
옵션을 사용하세요. 또는 Vim이나 VS Code 같은 에디터로 직접 파일을 열어서 편집해도 됩니다:$ git config --global --edit $ vi ~/.gitconfig $ code .git/config
2. 로컬 저장소와 원격 저장소의 개념 이해하기내 컴퓨터에서 Git으로 버전 관리를 하는 저장소를 로컬 저장소(local repository)라고 합니다. 원격 저장소(remote repository)는 인터넷이나 다른 네트워크 상에 위치한 Git 저장소를 말하며, 여러 개발자가 공유하여 협업할 수 있는 저장소입니다.
학습 목표
- 로컬 저장소를 만들 수 있습니다.
- 로컬 저장소와 원격 저장소를 연결할 수 있습니다.
- 로컬 저장소에서 작업한 내용을 원격 저장소에 업로드할 수 있습니다.
- 원격 저장소의 내용을 로컬 저장소로 내려받을 수 있습니다.
사전 지식
Git 저장소를 만드는 방법은 두 가지가 있습니다:
git init
: 아직 버전 관리를 시작하지 않은 디렉토리를 Git 저장소로 만듭니다.git clone
: 이미 존재하는 원격 저장소를 로컬 저장소로 복제합니다.
로컬 저장소와 원격 저장소는
git remote
명령어를 통해 연결됩니다.git push
와git fetch
명령어는 각각 로컬 저장소의 내용을 원격 저장소에 업로드하고, 원격 저장소의 내용을 로컬 저장소로 내려받습니다.
명령어 실습혼자 사이드 프로젝트를 진행하기 위해 새로운 디렉토리를 만들고, 해당 디렉토리를 Git 저장소로 만듭니다:
$ md side-project && cd side-project $ git init
Git 저장소가 잘 만들어졌는지 어떻게 알 수 있을까요?
.git
디렉토리가 존재하는지 확인하면 됩니다..git
디렉토리는 Git이 프로젝트 버전 관리에 필요한 모든 정보를 저장하는 데이터베이스입니다. 따라서 모든 Git 저장소에는.git
디렉토리가 필수적으로 존재합니다.$ ls .git ./ FETCH_HEAD HEAD description info/ refs/ ../ FETCH_LOG config hooks/ objects/
출력된 내용 중에
config
파일이 보이시나요?.git
디렉토리 내부에 있는config
파일이 이전 섹션에서 학습했던 로컬 스코프 설정 파일입니다.이제 로컬 저장소를 원격 저장소와 연결하겠습니다. 원격 저장소를 만드는 방법은 GitHub에서 새 저장소를 만드는 URL에 접속하거나 Pro Git 문서 - GitHub 프로젝트 관리하기를 참고해주세요.
이 글에서 다루는 원격 저장소(
datalater/side-project
)는 가상의 예시입니다. 직접 만들어서 실습해보세요.$ git remote add origin https://github.com/datalater/side-project.git
origin
은 로컬 저장소에서 원격 저장소를 참조하는 이름입니다. 원격 저장소를 가리킬 때 주소 전체를 입력할 필요 없이origin
이라는 이름으로 간단하게 참조할 수 있습니다.이제 작업을 추가해서 원격 저장소에 업로드하겠습니다:
$ touch README.md && echo "Hello, world" > README.md $ git add README.md $ git commit -m "Add README.md" $ git push -u origin main
git add <file>
:<file>
을 스테이지에 추가합니다.git commit -m <message>
:-m
옵션을 사용해서 커밋 메시지를 입력합니다.git push -u <remote> <branch>
: 로컬 저장소에서 작업한 내용을 원격 저장소에 업로드합니다.
git push -u origin main
명령어에서-u
(=--set-upstream
) 옵션은 현재push
하려는 로컬 저장소의main
브랜치가 원격 저장소의main
브랜치를 추적(upstream tracking)하도록 하는 설정입니다. 이 설정을 한 번 해두면 추후git push
나git pull
을 실행할 때 원격 브랜치의 이름을 명시하지 않아도 됩니다. Git이 자동으로 현재 브랜치와 연결된 원격 브랜치를 찾아 사용합니다.참고로 원격 저장소 추적 설정을 하지 않은 브랜치에서
git push
또는git pull
과 같이<remote>
와<branch>
를 설정하지 않고 실행하면 다음과 같은 에러 메시지가 출력됩니다:$ git switch -c new-branch $ git push fatal: 현재 브랜치 new-branch에 업스트림 브랜치가 없습니다. 현재 브랜치를 푸시하고 해당 리모트를 업스트림으로 지정하려면 다음과 같이 하십시오. git push --set-upstream origin new-branch
이제 원격 저장소에 다시 가보면 새로 작성한 README 파일이 업로드된 것을 확인할 수 있습니다. 참고로 add 명령어로 스테이지에 추가하는 것과 commit 명령어로
.git
디렉토리에 저장하는 것이 어떤 의미인지는 다음 섹션에서 다루겠습니다.이번에는 이미 만들어진 원격 저장소를 클론해서 로컬 저장소를 만들겠습니다.
$ git clone https://github.com/datalater/main-project.git $ cd main-project
마찬가지로
.git
디렉토리가 존재하는 것을 확인할 수 있습니다.$ ls .git
클론한 저장소는 원격 저장소에서 가져왔기 때문에
git remote
설정을 하지 않더라도 이미 연결되어 있습니다.git remote
명령어로 확인해보겠습니다:$ git remote -v origin https://github.com/datalater/main-project.git (fetch) origin https://github.com/datalater/main-project.git (push)
-v
:--verbose
옵션의 약어로 원격 저장소의 주소까지 포함해서 정보를 더 자세하게 출력합니다.
참고로 Git 명령어의 옵션에 관한 도움말은
git <명령어> --help
또는git <명령어> -h
명령어를 입력하면 확인할 수 있습니다. 명령어를 배울 때 도움말을 적극 활용해보세요. 빠르게 숙달될 수 있습니다.현재 상태에서 추가 작업을 하고
git push
명령어를 실행하면 작업한 내용이 원격 저장소에 업로드됩니다.$ touch README.md && echo "Hello, world" > README.md $ git add README.md $ git commit -m "Add README.md" $ git push -u origin main
원격 저장소에 업데이트된 내용을 로컬 저장소로 내려받으려면
git fetch
명령어를 사용하면 됩니다.$ git fetch
그런데
git fetch
를 실행해도 현재 작업 폴더에는 업데이트가 반영되지 않습니다. 왜냐하면git fetch
명령어는 원격 저장소의 내용을 로컬 저장소의.git
디렉토리에 내려받기만 하고, 현재 작업 폴더에는 반영하지 않기 때문입니다. 원격 저장소의 내용을 현재 작업 폴더에 반영하려면git fetch
이후에git merge
명령어를 실행하면 됩니다:$ git merge origin/main
git fetch
와git merge
명령어는 원격 저장소의 내용을 로컬 작업 폴더에 반영할 때 함께 쓰이는데, 이 둘을 한 번에 처리하는 명령어가 바로git pull
명령어입니다.$ git pull
git fetch
와git pull
명령어의 차이점을 다시 정리하겠습니다.git fetch
명령어는 원격 저장소의 내용을 로컬 저장소의.git
디렉토리에 저장하는 것만 하기 때문에 작업 폴더에는 반영되지 않고,git pull
명령어는 원격 저장소의 내용을 로컬 저장소의 작업 폴더에 반영하는 것까지 한번에 수행합니다.문제 풀이
Q. 오픈 소스로 공개된 블로그 템플릿 프로젝트를 사용해서 개인 블로그를 만들려고 합니다. 템플릿에서 몇 가지 기능을 수정할 것이기 때문에 개인 원격 저장소에서 작업할 예정입니다. 그런데 개인 작업은 별도로 진행하더라도 오픈 소스 프로젝트에서 추가되는 기능이나 버그 해결 업데이트는 개인 저장소에 반영하고 싶습니다. 어떻게 하면 될까요?
A. 하나의 로컬 저장소에서 두 개의 원격 저장소(원본 원격 저장소 및 개인 원격 저장소)를 연결하면 됩니다.
$ git clone https://github.com/shuding/nextra.git $ git remote -v origin https://github.com/shuding/nextra.git (fetch) origin https://github.com/shuding/nextra.git (push) $ git remote rename origin upstream $ git remote add origin <개인 원격 저장소 주소>
git clone
으로 원본 원격 저장소를 로컬 저장소로 복제합니다.git remote -v
명령어로 현재 연결된 원격 저장소 정보를 확인합니다.git remote rename <기존 이름> <새 이름>
명령어로 기존 원격 저장소의 이름을upstream
으로 변경합니다.git remote add <원격 저장소 이름> <원격 저장소 주소>
명령어로 개인 원격 저장소를 추가합니다.
이제 원본 저장소는
upstream
이라는 이름으로, 개인 저장소는origin
이라는 이름으로 연결되었습니다. 오픈 소스 프로젝트의 업데이트를 내려받아서 개인 원격 저장소에 반영하는 방법은 다음과 같습니다:$ git fetch upstream $ git merge upstream/main $ git push origin main
개인 작업을 업로드하는 방법은 다음과 같습니다:
$ git add $ git commit $ git push origin main
Q. 로컬에서 작업하던 원격 저장소가 삭제되어 fork가 불가능한 상황입니다. 로컬에서 작업하던 저장소를 개인 원격 저장소로 백업하고 싶습니다. 어떻게 하면 될까요?
A.
git remote
명령어로 개인 원격 저장소를 추가해서 업로드하면 됩니다.$ git remote add backup https://github.com/datalater/backup.git $ git push backup main
Q. 현재 작업 중인 브랜치의 내용은 변경하지 않고 원격 저장소에 업로드된 브랜치를 로컬 저장소로 가져오고 싶습니다. 어떻게 하면 될까요?
A.
git fetch
명령어를 실행하면 됩니다.$ git branch -r origin/HEAD -> origin/main origin/main $ git fetch $ git branch -r origin/HEAD -> origin/main origin/main origin/new-remote-branch $ git switch new-remote-branch
git branch -r
:-r
옵션(=--remotes
)을 사용하면 원격 저장소의 브랜치 목록을 확인할 수 있습니다.git fetch
: 원격 저장소의 내용을 로컬 저장소로 내려받습니다. 이때 원격 저장소에 새로 추가된 브랜치도 함께 내려받습니다.git switch <branch>
:<branch>
브랜치로 이동합니다.
Q. 원격 저장소에 업로드한 작업 브랜치를 삭제하고 싶습니다. 어떻게 하면 될까요?
A.
git push origin --delete <branch>
명령어를 실행하면 됩니다.3. 로컬 저장소의 세 가지 단계
Git은 로컬 저장소의 파일을 세 가지 단계로 나눠서 관리합니다. 작업 폴더(Working Directory), 스테이지(Staging Area),
.git
디렉토리(Git Directory)입니다. 세 가지 단계를 이해하면 버전 관리 흐름이 어떻게 진행되는지 이해할 수 있습니다.학습 목표
- 작업 폴더의 파일을 수정하고, 스테이지에 추가하고, 커밋할 수 있습니다.
- 현재 버전 관리 상태를 확인할 수 있습니다.
- 각 단계에서 변경한 내용을 확인할 수 있습니다.
- 각 단계에서 변경한 내용을 취소할 수 있습니다.
사전 지식
Git은 로컬 저장소의 파일을 세 가지 단계로 나눠서 관리합니다:
- 작업 폴더(Working Directory): 로컬 저장소의 실제 파일이 위치하는 디렉토리입니다.
- 스테이지(Staging Area): 커밋할 파일을 추가하는 공간입니다.
.git
디렉토리(Git Directory): 커밋이 완료되어 스냅샷이 저장되는 데이터베이스 공간입니다.
즉, 파일을 수정하고 바로 저장하는 게 아니라 Git은 중간에 스테이지 영역을 두고 스테이지를 거쳐서 커밋하도록 합니다.
왜 그렇게 할까요? 스테이지 영역이 없는 경우를 생각해보겠습니다:
스테이지 영역이 없다면 자동으로 모든 변경 사항이 커밋 대상이 됩니다. 결국 모든 변경을 저장하거나 또는 모두 저장하지 않거나(all or nothing) 둘 중에 하나인 상황이 됩니다. 이렇게 되면 여러 파일을 수정했지만 일부만 커밋하고 싶은 경우 대응이 어렵습니다. 또한 불필요하거나 임시 파일 등이 커밋에 포함될 위험도 있습니다.
반면에 스테이지 영역을 두면 개발자가 변경한 파일 중에서 커밋하고 싶은 부분을 선택적으로(selective) 정할 수 있습니다. 이렇게 되면 여러 작업을 한꺼번에 하더라도 각각 목적이 다른 변경 사항을 분리해서 따로 커밋할 수 있습니다. 이러한 과정은 변경 사항을 더욱 명확하게 조직화하고, 관련된 변경끼리 모아 커밋을 만들어서 프로젝트 이력을 깔끔하게 정리하는 데 도움을 줍니다. 또한 변경 사항을 스테이지 영역에 추가하기 전에 개발자가 세심하게 검토하는 기회가 생겨서 커밋의 품질을 자연스럽게 높이도록 유도합니다.
명령어 실습
기존에 존재하던 README 파일을 수정하겠습니다.
$ echo "Hello, world" >> README.md $ git status 커밋하도록 정하지 않은 변경 사항: (무엇을 커밋할지 바꾸려면 "git add <파일>..."을 사용하십시오) (use "git restore <file>..." to discard changes in working directory) 수정함: README.md
git status
명령어를 실행하면 현재 버전 관리 상태를 확인할 수 있습니다. 출력된 메시지를 보면git add
명령어와git restore
명령어가 언급되어 있습니다.git add
명령어는 작업 폴더의 변경 사항을 스테이지에 추가할 때 사용합니다.git restore
명령어는 작업 폴더에 있는 변경 사항을 취소할 때 사용합니다.git restore --staged
옵션을 붙이면 스테이지에 추가한 변경 사항을 취소합니다.git add
명령어로 스테이지 영역에 추가하기 전에 어떤 변경이 있는지 확인하려면git diff
명령어를 실행합니다:$ git diff diff --git a/README.md b/README.md index 27acc27c..6fd867bc 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,4 @@ Any change to example/docs will be re-rendered instantly. If you update the core or theme packages, a rebuild is required. Or you can use the watch mode for both nextra and the theme in separated terminals. +Hello, world
diff 출력에서
+
기호가 붙은 줄은 새롭게 추가된 코드 줄입니다. 삭제된 코드 줄은-
기호로 표시됩니다.변경 사항을 검토했으니 README 파일을 스테이지에 추가하겠습니다:
$ git add README.md $ git status 커밋할 변경 사항: (use "git restore --staged <file>..." to unstage) 수정함: README.md
git add
실행 후git status
명령어의 출력 메시지가 바뀌었습니다. 이전에 보았던 것처럼 변경 사항을 취소할 수 있는 방법을 알려줍니다. 현재는 스테이지 영역에 추가되었으니git restore --staged
옵션을 붙여서 사용하면 됩니다.커밋하기 전에 스테이지에 추가된 변경 사항을 확인해보겠습니다:
$ git diff --staged diff --git a/README.md b/README.md index 27acc27c..6fd867bc 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,4 @@ Any change to example/docs will be re-rendered instantly. If you update the core or theme packages, a rebuild is required. Or you can use the watch mode for both nextra and the theme in separated terminals. +Hello, world
참고로
--staged
옵션 대신--cached
옵션을 사용해도 동일하게 확인할 수 있습니다.README 파일을 커밋하겠습니다:
$ git commit -m "Update README.md" $ git status 커밋할 사항 없음, 작업 폴더 깨끗함
git status
명령어를 실행하면 커밋할 사항이 없고 작업 폴더가 깨끗하다고 합니다. Git이 감지하는 변경 사항이 없다는 뜻입니다.그런데 커밋을 완료한 이번에는
git status
출력 메시지에서 취소할 수 있는 방법을 알려주지 않네요. 작업 폴더나 스테이지에 실수로 추가한 경우restore
명령어로 취소할 수 있었습니다. 커밋한 내용은 어떻게 취소할 수 있을까요?$ git reset --soft HEAD~
git reset <target-commit>
:reset
명령어는 현재 커밋되어 있는 프로젝트를<target-commit>
의 스냅샷 상태로 변경하라는 명령어입니다.git reset <mode> <target-commit>
: 위에서 설명했던 것처럼 현재 프로젝트를 현재 커밋에서<target-commit>
상태로 변경합니다. 그런데 현재 커밋과<target-commit>
사이에 있는 변경 사항은 어떻게 처리해야 할까요? 이러한 변경 사항을 아예 삭제할지, 작업 폴더에 남길지, 스테이지에 남길지 결정하는 것이<mode>
입니다.HEAD~
:~
(틸드)는 부모 커밋을 의미합니다. 즉HEAD~
는HEAD
의 부모 커밋을 의미하므로HEAD
의 이전 커밋을 의미합니다.HEAD~2
는HEAD
의 부모의 부모 커밋을 의미하므로HEAD
의 두 단계 이전 커밋을 의미합니다.
위 명령어에서
--soft
모드는 현재 커밋에 등록된 변경을 스테이지 단계로 내리라는 뜻입니다.--mixed
모드는 현재 커밋에 등록된 변경을 작업 폴더로 내리라는 뜻입니다.--hard
모드는 현재 커밋에 등록된 변경을 작업 폴더에서 완전히 삭제하라는 뜻입니다. 즉, 프로젝트 버전을 이전 커밋 상태로 완전히 되돌립니다.특정 변경을 커밋한 후에 아래 명령어를 각각 실행해보면 차이점을 확인할 수 있습니다.
$ git reset --soft HEAD~ $ git reset --mixed HEAD~ $ git reset --hard HEAD~
아직 커밋하지 않은 사항을 삭제하지 않고, 임시로 어딘가에 저장하고 싶다면
git stash
명령어를 사용하면 됩니다.git stash
명령어는 커밋하지 않은 변경 사항을 임시로 보관합니다. Git의stash
는 스택(stack) 구조를 가지고 있습니다. LIFO(Last-In First-Out) 방식에 따라 최근에 보관한 변경 사항을 가장 먼저 꺼냅니다.git stash list
명령어로 현재 스택에 저장된 변경 사항을 확인할 수 있고,git stash pop
명령어를 사용하면 스택에 저장된 변경 사항을 다시 작업 폴더로 가져올 수 있습니다.$ echo "Temporary Hello" >> README.md $ git status -s M README.md
git status
명령어에-s
옵션을 넣으면 현재 버전 관리 상태를 짧은 형식(short formats)으로 출력합니다.M
은 수정된 파일(Modified)을 나타내는 표시입니다. 더 많은 표시에 관해서는 Pro Git 문서 - git status를 참고하세요.git stash
는 작업 폴더 또는 스테이지에 있는 변경 사항을 임시로 보관합니다. 명령어 실행 후 출력되는 메시지를 보면working directory and index state WIP
라고 나옵니다.WIP
는 Work In Progress의 약어로, 작업 중인 내용을 의미합니다.$ git stash Saved working directory and index state WIP on ... $ git status -s
작업 폴더에 있던 변경 사항이 사라졌으므로
git status -s
명령어를 실행하면 아무것도 출력되지 않습니다.git stash pop
명령어를 실행하면 임시 보관한 내용을 다시 가져옵니다.$ git stash pop $ git status -s M README.md
문제 풀이Q. 실험을 하기 위해 여기저기 디버깅 코드를 추가했다가 실험이 끝나서 이전 커밋 상태로 깨끗하게 되돌리고 싶습니다. 어떻게 하면 될까요?
A.
git reset --hard HEAD
명령어를 실행하면 됩니다.Q. 수정한 파일뿐만 아니라 새로 추가한 파일도 stash 하고 싶습니다. 어떻게 하면 될까요?
A.
git stash -u
명령어를 실행하면 됩니다.-u
옵션은--include-untracked
옵션의 약어로, 지금까지의 커밋 이력에 존재하지 않아서 추적하지 않고 있는 파일(untracked)도 stash에 추가합니다.글 작성: 조민철(Grepp 프론트엔드 개발자)
편집자: Tami
왕초보를 위한 Git 명령어 모음집 1탄이 도움되셨다면 2탄도 확인해 보세요!
👉 2탄 바로가기'IT 이야기' 카테고리의 다른 글
앱 개발자가 하는 일과 앞으로의 전망 (0) 2024.02.21 왕초보를 위한 Git 명령어 모음집 (2) (1) 2024.02.16 좋은 개발자의 6가지 특징 (1) 2024.01.05 Git, GitHub 명령어 사용 꿀팁 (0) 2023.12.14 데이터 분석가와 데이터 엔지니어의 역할과 차이점 (0) 2023.12.12