본문 바로가기
DevOps/Tools

[Git] git, github cheat sheet, 깃 깃허브 명령어 요약 + α

by breezyday 2023. 12. 6.

git, github는 최근 거의 모든 개발 환경에서 기본으로 사용하는 분위기입니다. 그러나 대부분 툴에서 제공하는 환경에서 사용하다 보니 가끔은 최초 설정이나, 툴 사용이 어려운 환경에서 사용할 때 명령어가 생각나지 않는 경우가 있었습니다.

 

이것도 생각난 김에 정리해 둡니다.


1. Git 설치하기

1.1 Windows 사용자를 위한 GitHub

https://windows.github.com/

1.2 Mac 사용자를 위한 GitHub

https://mac.github.com/

1.3 모든 플랫폼을 위한 Git

https://git-scm.com/

 

2. Git 환경 설정

모든 로컬 저장소에 적용할 사용자 정보를 설정하는 방법

2.1 자신이 생성한 커밋(commit)에 들어갈 이름을 설정

$ git config --global user.name "[name]"

2.2 자신이 생성한 커밋(commit)에 들어갈 이메일(email)을 설정

$ git config --global user.email "[email address]"

 

2.3 coomand line 결과 컬러화(colorization) 활성

$ git config --global color.ui auto

 

3. 저장소(Repository) 생성하기

새로운 저장소를 만들거나, 다른 저장소의 URL을 이용해 저장소를 복사하는 방법

3.1 새로운 로컬 저장소를 생성하고 이름 정하기

기존 directory를 이 명령을 실행하는 폴더 내의 새 git repository로 바꿉니다. 

git init 명령을 실행한 다음, 아래의 명령어를 사용하여 local repository를 빈 GitHub (remote) repository에 연결합니다.

$ git init [project-name]

 

3.2 로컬 저장소에 대한 원격 저장소 지정하기

local repository에 대한 remote(원격) repository를 지정합니다. url은 GitHub의 repository를 가리킵니다.

$ git remote add origin [url]

3.3 기존 프로젝트의 모든 커밋 내역을 가져와 저장소 만들기

모든 파일, 브랜치, 커밋을 포함하여 GitHub에 이미 존재하는 repository를 복제(다운로드)합니다.

$ git clone [url]

 

4. 특정 파일을 저장소에서 제외하기

git의 파일 관리 목록에서 임시 파일과 경로를 제외합니다.

*.log
build/
temp-*

 

. gitignore라는 이름의 텍스트 파일에서 제외할 문자열 패턴을 지정하여 실수로 엉뚱한 파일이나 경로가 저장되지 않게 방지할 수 있습니다. https://github.com/github/gitignore에서 도움이 될만한 템플릿을 찾을 수 있습니다. 

 

다른 방법으로 gitignore.io 홈페이지에서 이 파일을 손쉽게 생성할 수 있습니다. 

http://gitignore.io/

4.1 이 프로젝트에서 관리하는 모든 파일 확인하기

$ git ls-files

# ls-files 관련 도움말 확인
$ git help ls-files

4.2 이 프로젝트에서 제외된 모든 파일 확인하기

$ git ls-files --other --ignored --exclude-standard

$ git ls-files -o -i --exclude-standard

 

5. 파일 추가 삭제하기

버전 관리 중인 파일을 옮기거나 삭제합니다.

5.1 파일 삭제하기

워킹 디렉터리에 있는 파일을 제거하고, 삭제한 내역을 stage 합니다.

$ git rm [file]

5.2 버전 관리 목록에서만 삭제하기

현재 파일은 그대로 두고 버전 관리 목록에서만 제거합니다.

$ git rm --cached [file]

5.3 파일 이름 변경하기

파일명을 변경하고 해당 내역을 stage 합니다.

$ git mv [file-original] [file-renamed]

 

6. 변경점 저장하기 : stage & commit

수정 사항을 검토하고 commit을 수행합니다.

 

git - file life cycle

워킹 디렉터리의 모든 파일
- 크게 Tracked(관리대상)와 Untracked(관리대상이 아님)로 나눈다
- Tracked 파일 : 이미 스냅숏에 포함되어 있던 파일.
Tracked 파일
- Unmodified(수정하지 않음)와 Modified(수정함) 그리고 Staged(Commit으로 저장소에 기록할) 상태 중 하나이다.
Untracked 파일
- Git에서 관리하지 않는 모든 파일

6.1 파일 목록 확인

commit 할 수 있는 새로운(Untracked) 파일 혹은 수정된(Modified) 파일목록으로 확인합니다.

$ git status

6.2 파일의 변경점 확인

수정(Modified)하였으나 아직 stage 하지 않은 파일의 변경점을 확인합니다. 새로운 파일은 표시되지 않습니다.

$ git diff

6.3 파일 stage 하기

버전 관리를 위한 스탭샷을 생성합니다.

다른 말로 하면 commit을 하기 위해 파일을 staged 상태로 등록합니다.

$ git add [file]

6.4 stage 한 파일과 최근에 commit 한 파일을 비교하기

stage 하였으나 아직 commit 하지 않은 파일가장 최근에 commit 한 파일비교합니다.

$ git diff --staged

6.5 stage 한 파일을 unstage 하기

파일의 내용은 유지한 채로 stage 내역만 제거합니다.

$ git reset [file]

6.6 stage 한 내용을 commit으로 저장하기

stage 한 내용(n개의 파일의 수정 내용)commit으로 영구히 저장합니다.

$ git commit -m "[descriptive message]"

 

7. 커밋 되돌리기

commit 한 내용을 지우고 기록을 바꿉니다.

7.1 커밋 reset 하기

[commit] 이후의 모든 커밋을 취소하고, 현재 파일의 변경 사항은 그대로 유지합니다.

$ git reset [commit]

7.2 커밋 hard reset 하기

모든 변경점과 수정사항을 버리고(삭제하고) 지정한 [commit]으로 되돌아갑니다.

$ git reset --hard [commit]

 

8. 변경점 일부분을 (임시로) 저장하기

 

작업 중 다른 요청이 들어와 하던 작업을 멈추고 잠시 브랜치를 변경해야 할 경우, 완료하지 않은 내용을 commit 하고 싶지 않을 때 사용할 수 있습니다.

 

불완전한 변경 사항을 임시로 저장하거나 복원합니다.

8.1 파일의 변경점을 임시로 저장하기 (stash)

버전 관리 중인 모든 파일의 변경점을 임시로 저장합니다.

$ git stash
$ git stash push

8.2 가장 최근에 임시 저장한 내용 복원하기 

가장 최근에 임시 저장한 내용을 복원하고, 임시 저장 내역 목록에서 삭제합니다.

$ git stash pop

8.3 임시 저장한 모든 변경점의 목록 조회하기

여러 번 stash를 했다면, 임시 저장된 모든 변경점의 목록을 조회할 수 있습니다.

$ git stash list

8.4 임시 저장 내용 복원하기

applypop과 유사하게 임시 저장한 내용을 복원합니다.  그러나 임시 저장 내역은 목록에서 삭제되지 않고 남아있습니다.

// 가장 최근의 임시 저장 내역을 불러옵니다.
$ git stash apply

// [stash name]의 임시 저장 내역을 불러옵니다.
$ git stash apply [stash name]

8.5 임시 저장 내용 삭제하기

임시 저장한 내용을 삭제합니다.

// 가장 최근 저장 내역을 삭제
$ git stash drop

// [stash name]에 해당하는 내역을 삭제
$ git stash drop [stash name]

 

9. 변경점을 묶어 관리하기

일련의 commit이름을 붙이고 여러 변경점을 통합합니다. 이를 branch라 합니다.

 

commit을 실행한다면 모든 commit은 현재 "check out"된 브랜치에서 이루어집니다. git status 명령을 사용하여 branch를 확인할 수 있습니다.

9.1 로컬 브랜치 목록 확인하기

현재 저장소의 모든 로컬 브랜치를 보여줍니다.

$ git branch

9.2 브랜치 생성하기

새로운 브랜치를 생성합니다.

$ git branch [branch-name]

9.3 특정 브랜치로 전환하기

특정 브랜치로 전환하고 워킹 디렉터리를 업데이트합니다.

$ git switch -c [branch-name]

9.4 브랜치 병합하기

현재 브랜치에 특정 브랜치의 히스토리를 병합합니다.

$ git merge [branch-name]

9.5 브랜치 삭제하기

브랜치를 삭제합니다.

$ git branch -d [branch-name]

 

10. 변경점 동기화하기

원격 저장소(의 URL)를 등록하고 저장소 기록을 주고받습니다.

10.1 원격 저장소 내용받아오기

원격 저장소로부터 모든 내용을 다운로드합니다.

$ git fetch [remote]

10.2 원격 브랜치와 병합하기

원격 브랜치를 현재 사용 중인 로컬 브랜치와 병합합니다.

$ git merge [remote]/[branch]

10.3 로컬 저장소의 변경점을 원격 저장소에 저장하기

모든 로컬 브랜치의 변경점을 GitHub에 업로드합니다.

$ git push [remote] [branch]

10.4 원격 저장소 내용 동기화하기

북마크 된 원격 브랜치의 기록을 다운로드하여 변경점을 병합합니다.

$ git pull

 

11. 도움말 확인하기

terminal 혹은 cmd 창에서 아래의 명령을 입력하면 도움말을 확인할 수 있습니다.

$ git help

windows command window - git help

 

상세 도움말은 아래 명령으로 확인할 수 있습니다.

// 주요 git command
// - config
// - clone, init, add, mv, restore, rm
// - bisect, diff, grep, log, show, status
// - branch, commit, merge, rebase, reset, switch, tag
// - fetch, pull, push

$ git help [git command]

 

이 명령은 윈도즈에서는 브라우저 창으로 떠서 확인할 수 있습니다.

chrome - git-init Manual Page

 

아래의 명령으로 termial에서 확인할 수도 있습니다. 

$ git [git command] -h

windows command window - git init -h

 

 

 

 

 

참고문헌

https://training.github.com/downloads/ko/github-git-cheat-sheet/

https://training.github.com/downloads/github-git-cheat-sheet/

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

 

 

 

 

댓글