-
2.1 사용자 이름, Email 설정
-
2.1 사용자 설정 정보 확인
-
3.1 git init: 기존 디렉토리를 Git 저장소로 만들기
-
3.2 git clone: git repository 가져오기
-
4.1 git add
-
4.2 git status
-
4.3 git diff / git difftool
-
4.4 git commit
-
4.5 git reset, restore, revert
-
4.5.1 git reset
-
4.5.2 git restore
-
4.5.3 git revert
-
4.6 git rm
-
4.7 git mv
-
4.8 git clean
-
5.1 git branch
-
5.1 git merge
-
6.1 git log
-
7.1 git fetch
-
7.2 git pull
-
7.3 git push
-
7.4 git remote
-
8.1 git stash
1. 자주 쓰는 Git 명령어
# 현재 directory 의 모든 파일을 Staging Area 로 이동
git add .
# file 들의 tracking 상태 보기
git status
# Staging 의 파일들 commit 하기
git commit -m "messsage"
# 저장소에 commit 반영하기
git push
# 저장소에서 commit 가지고 오기
git pull
# remote origin의 development branch merge
git merge origin/development
# 한 줄로 그래프 형태로 commit 히스토리 보기
git log --oneline --graph
# remote에서 삭제된 brach를 local 에서도 깔끔하게 삭제
git fetch origin --prune
2. 초기설정
2.1 사용자 이름, Email 설정
git config --global user.name “[firstname lastname]”
git config --global user.email “[valid-email]”
2.1 사용자 설정 정보 확인
git config --list
3.Git 프로젝트 생성하기, 가져오기
3.1 git init: 기존 디렉토리를 Git 저장소로 만들기
# 프로젝트 directory로 이동
cd [my_project path]
# README 파일 생성
echo "# my_project" >> README.md
# git 저장소로 등록
git init
# 관리할 file을 Staging Area 추가
git add README.md
# Staging Area 에 추가된 파일 commit
git commit -m "first commit"
# 최초 등록된 master branch 대신 main branch 사용하도록 변경
git branch -M main
# 원격 remote repository에 추가
git remote add origin [git URL]
# git push
git push -u origin main
3.2 git clone: git repository 가져오기
기존에 사용중인 저장소를 복사해서 가져올 수 있다.
git clone [url]
4. 스냅샷 다루기
4.1 git add
working directory 에서 파일/폴더를 Staging Area(“index”)에 등록하여 git 으로 관리를 시작한다.
git add [file]
4.2 git status
git의 현재 상태 확인한다. Staging Area, UnStage Area 에 있는 파일 및 Untracked 상태의 파일을 확인 할 수 있다.
git status
4.3 git diff / git difftool
git diff 명령은 두 트리 개체의 차이를 보고 싶을 때 사용한다. 최근 commit vs 현재 파일의 차이점을 보여줌. 하지만 git diff는 잦은 에러가 발생하기 떄문에 vim에디터로 더욱 차이점을 더 잘 보여주는 git difftool을 쓴다.
# stage 되지 않은 변경 비교
git diff
# stage 되어 있으나 아직 commit 되지 않은 변경 비교
git diff --staged
# git difftool로 vim에디터를 실행한다.
git difftool
# git difftool 커밋아이디
-현재 파일 vs 커밋아이디(특정 커밋) 비교가능
git difftool [커밋아이디]
# git difftool 커밋아이디1 커밋아이디2
-- 커밋아이디1 vs 커밋아이디2 비교가능
git difftool [커밋아이디1] [커밋아이디2]
4.4 git commit
git commit 명령은 Staging Area의 모든 파일을 커밋한다. 저장소에는 하나의 스냅샷으로 기록된다. 그 뒤 현재 Branch가 새 커밋을 가리키게 한다.
git commit -m “[커밋 상세 메시지]”
–amend 옵션으로 최근 커밋을 재작성할 수 있다
git commit --amend
아래와 같이 commit에 깜박한 파일이 있으면 아래와 같이 수정 가능하다. 이렇게 –amend 옵션으로 커밋을 고치는 작업은 이전의 커밋을 완전히 새로 고쳐서 새 커밋으로 변경하는 것을 의미한다. 이전의 커밋은 일어나지 않은 일이 되는 것이고 당연히 히스토리에도 남지 않는다.
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
4.5 git reset, restore, revert
4.5.1 git reset
git reset 명령은 되돌리는(Undo) 명령이다. git reset 명령은 매우 위험하므로 주의하여 사용하여야 한다. 협업시엔 사용금지
# Staged 상태의 파일을 Unstage 로 변경
git reset
# staging area가 초기화되고 working tree를 특정 커밋시점으로 덮어쓰기, 과거로 모든걸 되돌리기
git reset --hard [commit]
# 이전 Head 시점으로 초기화. working directory, 최근 commit 이력이 삭제된다.
git reset --hard HEAD^
# 변동사항 지우지 말고 스테이징 해놓기
git reset --soft [커밋아이디]
# 변동사항 지우지 말고 unstage해놓기
git reset --mixed [커밋아이디]
4.5.2 git restore
git restore은 파일을 되돌리는 명령어다.
# 파일복구
git restore [파일명]
# 특정 commit 시점으로 파일복구
git restore --source [커밋아이디] [파일명]
# 특정 파일 staging 취소
git restore --staged [파일명]
4.5.3 git revert
git revert는 commit을 취소하는 명령어다.
# commit 취소
git revert [커밋아이디]
git revert [커밋아이디1] [커밋아이디2]
#최근 commit 취소
git revert HEAD
4.6 git rm
Staging Area나 Working directory에 있는 파일을 삭제한다.
git rm [file]
4.7 git mv
파일/폴더의 이름을 변경한다
git mv [existing-path] [new-path]
mv 명령어는 사실 아래와 같이 동작한다. 즉 이름이 바뀐 파일을 삭제하고 다시 add 하는 것과 똑같다.
mv README.md README
git rm README.md
git add README
4.8 git clean
working directory에서 필요 없는 파일을 삭제한다. 충돌로 생긴 파일이나 build artifact 파일을 삭제할 때 편리하다.
git clean
5.Branch와 Merge
5.1 git branch

# branch 목록 조회, *가 현재 branch
git branch
# branch로 이동
git switch [브랜치명]
# 원격 branch 목록 조회
git branch -r
# 전체 branch 목록 조회
git branch -a
branch를 신규 생성한다.
# branch 생성
git branch [branch-name]
Branch를 변경하고 해당 파일을 Working directory로 복사한다
# branch checkout
git checkout
5.1 git merge

다른 Branch를 현재 Checkout된 Branch에 Merge 한다. Merge 하고 나서 현재 Branch가 Merge 된 결과를 가리키도록 옮긴다.
# 특정 branch를 현재 checkout 된 branch에 merge
git merge [합칠 브랜치명]
# merge가 완료된 브랜치 삭제
git branch -d [브랜치명]
# merge 안한 브랜치 삭제
git branch -D [브랜치명]
# remote origin의 main branch merge
git merge origin/main
# local 저장소의 main branch merge
git merge main
6.log
6.1 git log
# 커밋 히스토리를 시간 순으로 조회
git log
# 최근 number개만 노출
git log -[number]
# oneline 으로 히스토리 노출
git log --oneline
# graph 로 출력
git log --graph
7.공유 & 업데이트
7.1 git fetch
로컬 저장소에 있는 것을 뺀 remote 저장소의 모든 것을 가져온다. 원격저장소에 있는 신규 commit을 가져온다.
git fetch [remote]
–prune 옵션으로 remote 저장소에 지워진 브랜치를 local 반영하여 local의 불필요한 branch를 삭제한다.
git fetch --prune
7.2 git pull
remote의 commit을 가져오고 병합한다. git fetch 와 git merge 명령을 순서대로 실행하는 것과 같다.
git pull [원격저장소주소]
7.3 git push
로컬 저장소의 commit 내역을 remote 저장소로 전송한다. -u 옵션은 upstream repository를 설정해준다. 즉 한번 설정한 후로는 git push, git pull 만 간단히 쓸 수 있다.
# 로컬 -> 원격저장소 업로드
git push -u [원격저장소주소] [올릴 로컬브랜치명]
# git remote add를 통해 변수 생성 후 push
git push -u origin main
# -u를 통해 주소 기억 후 손쉬운 push
git push
7.4 git remote
원격 저장소 설정 관리 도구다.
# 현재 프로젝트에 등록된 리모트 저장소를 확인
git remote
# 단축이름과 URL을 함께 조회
git remote -v
# git url 에 remote(저장소) 이름으로 등록한다.
git remote add [remote] [url]
git remote add origin https://github.com/cusbert/TIL.git
8.임시 저장
8.1 git stash
현재 작업을 임시 저장하는데 사용한다.
A라는 작업을 진행하다가 잠깐 다른 B 작업을 우선 할 일이 생겼다 이 때 A를 커밋하지 않고 Stash 했다가 B를 끝낸 후 다시 A라는 작업을 진행 할 수 있다. Branch에 상관없이 아직 끝내지 않은 수정사항을 스택에 잠시 임시저장했다가 나중에 다시 적용할 수 있다.
# modified, staged 변경 내용 임시 저장
git stash
# stashed 조회
git stash list
# stash 내역 working directory로 추가(가장 최근 stash 먼저 불러옴)
git stash pop
# stash file 1개 제거
git stash drop
# stash file 전부제거
git stash clear
# stash 메모저장
git stash save '메모'
1. 자주 쓰는 Git 명령어
# 현재 directory 의 모든 파일을 Staging Area 로 이동
git add .
# file 들의 tracking 상태 보기
git status
# Staging 의 파일들 commit 하기
git commit -m "messsage"
# 저장소에 commit 반영하기
git push
# 저장소에서 commit 가지고 오기
git pull
# remote origin의 development branch merge
git merge origin/development
# 한 줄로 그래프 형태로 commit 히스토리 보기
git log --oneline --graph
# remote에서 삭제된 brach를 local 에서도 깔끔하게 삭제
git fetch origin --prune
2. 초기설정
2.1 사용자 이름, Email 설정
git config --global user.name “[firstname lastname]”
git config --global user.email “[valid-email]”
2.1 사용자 설정 정보 확인
git config --list
3.Git 프로젝트 생성하기, 가져오기
3.1 git init: 기존 디렉토리를 Git 저장소로 만들기
# 프로젝트 directory로 이동
cd [my_project path]
# README 파일 생성
echo "# my_project" >> README.md
# git 저장소로 등록
git init
# 관리할 file을 Staging Area 추가
git add README.md
# Staging Area 에 추가된 파일 commit
git commit -m "first commit"
# 최초 등록된 master branch 대신 main branch 사용하도록 변경
git branch -M main
# 원격 remote repository에 추가
git remote add origin [git URL]
# git push
git push -u origin main
3.2 git clone: git repository 가져오기
기존에 사용중인 저장소를 복사해서 가져올 수 있다.
git clone [url]
4. 스냅샷 다루기
4.1 git add
working directory 에서 파일/폴더를 Staging Area(“index”)에 등록하여 git 으로 관리를 시작한다.
git add [file]
4.2 git status
git의 현재 상태 확인한다. Staging Area, UnStage Area 에 있는 파일 및 Untracked 상태의 파일을 확인 할 수 있다.
git status
4.3 git diff / git difftool
git diff 명령은 두 트리 개체의 차이를 보고 싶을 때 사용한다. 최근 commit vs 현재 파일의 차이점을 보여줌. 하지만 git diff는 잦은 에러가 발생하기 떄문에 vim에디터로 더욱 차이점을 더 잘 보여주는 git difftool을 쓴다.
# stage 되지 않은 변경 비교
git diff
# stage 되어 있으나 아직 commit 되지 않은 변경 비교
git diff --staged
# git difftool로 vim에디터를 실행한다.
git difftool
# git difftool 커밋아이디
-현재 파일 vs 커밋아이디(특정 커밋) 비교가능
git difftool [커밋아이디]
# git difftool 커밋아이디1 커밋아이디2
-- 커밋아이디1 vs 커밋아이디2 비교가능
git difftool [커밋아이디1] [커밋아이디2]
4.4 git commit
git commit 명령은 Staging Area의 모든 파일을 커밋한다. 저장소에는 하나의 스냅샷으로 기록된다. 그 뒤 현재 Branch가 새 커밋을 가리키게 한다.
git commit -m “[커밋 상세 메시지]”
–amend 옵션으로 최근 커밋을 재작성할 수 있다
git commit --amend
아래와 같이 commit에 깜박한 파일이 있으면 아래와 같이 수정 가능하다. 이렇게 –amend 옵션으로 커밋을 고치는 작업은 이전의 커밋을 완전히 새로 고쳐서 새 커밋으로 변경하는 것을 의미한다. 이전의 커밋은 일어나지 않은 일이 되는 것이고 당연히 히스토리에도 남지 않는다.
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
4.5 git reset, restore, revert
4.5.1 git reset
git reset 명령은 되돌리는(Undo) 명령이다. git reset 명령은 매우 위험하므로 주의하여 사용하여야 한다. 협업시엔 사용금지
# Staged 상태의 파일을 Unstage 로 변경
git reset
# staging area가 초기화되고 working tree를 특정 커밋시점으로 덮어쓰기, 과거로 모든걸 되돌리기
git reset --hard [commit]
# 이전 Head 시점으로 초기화. working directory, 최근 commit 이력이 삭제된다.
git reset --hard HEAD^
# 변동사항 지우지 말고 스테이징 해놓기
git reset --soft [커밋아이디]
# 변동사항 지우지 말고 unstage해놓기
git reset --mixed [커밋아이디]
4.5.2 git restore
git restore은 파일을 되돌리는 명령어다.
# 파일복구
git restore [파일명]
# 특정 commit 시점으로 파일복구
git restore --source [커밋아이디] [파일명]
# 특정 파일 staging 취소
git restore --staged [파일명]
4.5.3 git revert
git revert는 commit을 취소하는 명령어다.
# commit 취소
git revert [커밋아이디]
git revert [커밋아이디1] [커밋아이디2]
#최근 commit 취소
git revert HEAD
4.6 git rm
Staging Area나 Working directory에 있는 파일을 삭제한다.
git rm [file]
4.7 git mv
파일/폴더의 이름을 변경한다
git mv [existing-path] [new-path]
mv 명령어는 사실 아래와 같이 동작한다. 즉 이름이 바뀐 파일을 삭제하고 다시 add 하는 것과 똑같다.
mv README.md README
git rm README.md
git add README
4.8 git clean
working directory에서 필요 없는 파일을 삭제한다. 충돌로 생긴 파일이나 build artifact 파일을 삭제할 때 편리하다.
git clean
5.Branch와 Merge
5.1 git branch

# branch 목록 조회, *가 현재 branch
git branch
# branch로 이동
git switch [브랜치명]
# 원격 branch 목록 조회
git branch -r
# 전체 branch 목록 조회
git branch -a
branch를 신규 생성한다.
# branch 생성
git branch [branch-name]
Branch를 변경하고 해당 파일을 Working directory로 복사한다
# branch checkout
git checkout
5.1 git merge

다른 Branch를 현재 Checkout된 Branch에 Merge 한다. Merge 하고 나서 현재 Branch가 Merge 된 결과를 가리키도록 옮긴다.
# 특정 branch를 현재 checkout 된 branch에 merge
git merge [합칠 브랜치명]
# merge가 완료된 브랜치 삭제
git branch -d [브랜치명]
# merge 안한 브랜치 삭제
git branch -D [브랜치명]
# remote origin의 main branch merge
git merge origin/main
# local 저장소의 main branch merge
git merge main
6.log
6.1 git log
# 커밋 히스토리를 시간 순으로 조회
git log
# 최근 number개만 노출
git log -[number]
# oneline 으로 히스토리 노출
git log --oneline
# graph 로 출력
git log --graph
7.공유 & 업데이트
7.1 git fetch
로컬 저장소에 있는 것을 뺀 remote 저장소의 모든 것을 가져온다. 원격저장소에 있는 신규 commit을 가져온다.
git fetch [remote]
–prune 옵션으로 remote 저장소에 지워진 브랜치를 local 반영하여 local의 불필요한 branch를 삭제한다.
git fetch --prune
7.2 git pull
remote의 commit을 가져오고 병합한다. git fetch 와 git merge 명령을 순서대로 실행하는 것과 같다.
git pull [원격저장소주소]
7.3 git push
로컬 저장소의 commit 내역을 remote 저장소로 전송한다. -u 옵션은 upstream repository를 설정해준다. 즉 한번 설정한 후로는 git push, git pull 만 간단히 쓸 수 있다.
# 로컬 -> 원격저장소 업로드
git push -u [원격저장소주소] [올릴 로컬브랜치명]
# git remote add를 통해 변수 생성 후 push
git push -u origin main
# -u를 통해 주소 기억 후 손쉬운 push
git push
7.4 git remote
원격 저장소 설정 관리 도구다.
# 현재 프로젝트에 등록된 리모트 저장소를 확인
git remote
# 단축이름과 URL을 함께 조회
git remote -v
# git url 에 remote(저장소) 이름으로 등록한다.
git remote add [remote] [url]
git remote add origin https://github.com/cusbert/TIL.git
8.임시 저장
8.1 git stash
현재 작업을 임시 저장하는데 사용한다.
A라는 작업을 진행하다가 잠깐 다른 B 작업을 우선 할 일이 생겼다 이 때 A를 커밋하지 않고 Stash 했다가 B를 끝낸 후 다시 A라는 작업을 진행 할 수 있다. Branch에 상관없이 아직 끝내지 않은 수정사항을 스택에 잠시 임시저장했다가 나중에 다시 적용할 수 있다.
# modified, staged 변경 내용 임시 저장
git stash
# stashed 조회
git stash list
# stash 내역 working directory로 추가(가장 최근 stash 먼저 불러옴)
git stash pop
# stash file 1개 제거
git stash drop
# stash file 전부제거
git stash clear
# stash 메모저장
git stash save '메모'