git, github는 최근 거의 모든 개발 환경에서 기본으로 사용하는 분위기입니다. 그러나 대부분 툴에서 제공하는 환경에서 사용하다 보니 가끔은 최초 설정이나, 툴 사용이 어려운 환경에서 사용할 때 명령어가 생각나지 않는 경우가 있었습니다.
이것도 생각난 김에 정리해 둡니다.
1. Git 설치하기
1.1 Windows 사용자를 위한 GitHub
1.2 Mac 사용자를 위한 GitHub
1.3 모든 플랫폼을 위한 Git
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 홈페이지에서 이 파일을 손쉽게 생성할 수 있습니다.
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을 수행합니다.
워킹 디렉터리의 모든 파일
- 크게 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 임시 저장 내용 복원하기
apply는 pop과 유사하게 임시 저장한 내용을 복원합니다. 그러나 임시 저장 내역은 목록에서 삭제되지 않고 남아있습니다.
// 가장 최근의 임시 저장 내역을 불러옵니다.
$ 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
상세 도움말은 아래 명령으로 확인할 수 있습니다.
// 주요 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]
이 명령은 윈도즈에서는 브라우저 창으로 떠서 확인할 수 있습니다.
아래의 명령으로 termial에서 확인할 수도 있습니다.
$ git [git command] -h
참고문헌
https://training.github.com/downloads/ko/github-git-cheat-sheet/
https://training.github.com/downloads/github-git-cheat-sheet/
'DevOps > Tools' 카테고리의 다른 글
[Git, SVN] SVN vs Git : 2020년에 당신에게 적합한 것은? 번역 및 요약본 (0) | 2023.12.18 |
---|---|
[VSC] VSCode : 코드 편집 시 유용한 단축키 모음 - 같은 단어 선택, 여러줄 선택, 멀티 커서, 한줄 복사, 한줄 이동, 한줄 삭제 (0) | 2023.12.02 |
[VSC] VSCode : 파일 저장할 때 Prettier로 자동 정렬 적용 설정 방법 (0) | 2023.11.30 |
[Gradle] dependencies deprecated (ex: compile -> implementation) (0) | 2023.08.13 |
[OpenJDK] OpenJDK 다운로드 및 설치 (0) | 2022.10.26 |
댓글