기초 영역 (only. Local Repository)
git init ${폴더명}
현재 디렉토리를 Local Repository 로 지정합니다.
${폴더명} 은 작성하지 않으면 . 으로 인식하여, 현재 디렉토리를 Local Repository 로 만듭니다.
${폴더명} 작성 시, 현재 디렉토리 내 ${폴더명} 디렉토리를 생성하며 해당 디렉토리를 Local Repository 로 만듭니다.
Local Repository 로 인식된 디렉토리는 .git 숨김 폴더가 생성됩니다. 또한, 일반적으로 master 브랜치가 생성됩니다.
Tip1. git init
= git init .
Tip2. .git 폴더가 안 보일 때, Mac의 경우 Terminal 에서 ls -al
로 확인, Windows의 경우 cmd 에서 dir /a
로 확인합니다.
git status
파일의 상태를 확인합니다.
파일의 상태는 이전 포스트인 'Git 이란? Git 사용방법 알아보기 (기초)' 에서 확인할 수 있습니다.
해당 명령어 실행 시, 터미널 아래부분부터 Untracked Files, Changes not staged for commit, Changes to be committed가 존재합니다.
Untracked Files 에는 Untracked - New Files 상태, 즉 새로 생성된 파일들이 존재합니다.
Changes not staged for commit 에는 Tracked - Modified 상태, 즉 이전에 commit 되었던 파일 중 현재 작업 디렉토리에서 modified, deleted 된 파일들이 존재합니다.
Changes to be committed 에는 Tracked - Staged 상태, 즉 git add ${파일명 또는 폴더명}
또는 git rm ${파일명 또는 폴더명}
명령어로 실행된 파일들이 존재합니다.
git commit
명령어가 작동한 이후에는 Tracked - Staged 상태의 파일들이 작업 내역으로 반영되어 git status
에서는 보이지 않는 Tracked - Unmodified 상태가 됩니다.
git add ${파일/폴더명}
git status
명령어를 통해 확인한 파일 중 Untracked, Tracked - Modified 상태의 파일을 Tracked - Staged 상태로 변경하는 명령어 입니다.
Tip1. git add .
실행 시 현재 폴더 내 Untracked, Tracked - Modified Files 를 Tracked - Staged 로 변경합니다.
Tip2. git add
의 반대는 git reset
Tip3. git rm
은 git add
의 반대가 아닌 Tracked - Unmodified 상태인 파일을 '제거'된 형태로 Tracked - Staged 상태로 변경합니다. (해당 파일 제거를 Commit 에 반영할 것임을 예고)
git diff ${파일/폴더명}
Local Repository 내에서 동일한 파일의 변경 전 내용과 변경 후 내용을 비교하여 보여줍니다.
저는 개인적으로 git diff
명령어는 터미널에서 보기 힘들어 SourceTree, GitHub For Desktop, GitKraken 등 GUI 프로그램을 사용합니다.
Tip1. git diff
만 실행 시, 변경 점이 존재하는 모든 파일을 부분적으로 비교하여 보여줍니다.
git commit -m "${커밋메세지}"
Tracked - Staged 상태의 파일들을 commit 에 반영합니다.
이 때 commit 은 고유 해시 아이디를 지니게 되며, 앞에서 5~7자리 정도만 가지고 커밋을 추적할 때 많이 사용합니다.
-m 옵션은 보통 제목 줄을 적을 때 사용하며, git commit
명령어만 입력하면 Text Editor 가 실행이 됩니다.
Editor 내에서 commit message 를 작성하여 저장 후 끝내기를 하면 입력된 commit messege 와 함께 commit이 실행됩니다. 커밋 메세지를 적는 방법은 다양하지만 대표적으로 깔끔하게 커밋 메세지를 작성하는 방법은 아래와 같습니다.
1. 첫번째 줄은 이슈번호 및 현상에 대해 간략히 설명함
2. 두번째 줄은 공백으로 남길 것!!
3. 세번째 줄 이후는 - 로 시작하여 상세 설명을 기입함
ex.
EX-02 오탈자를 수정한다
- stagg 를 stage 로 변경
- 이걸 틀리다니
- 허허
이상 Local Repository 에서 사용하는 주요 git 명령어 모음이었습니다.
추가로! git commit 이 실행된 커밋을 제거하고 과거로 돌아가는 방법
git reset HEAD^
위 명령어는 git commit 이 실행된 이후에 commit을 제거하고 과거 지점으로 돌아갈 때 사용하는 방법입니다.
Repository 에서는 각 브랜치의 마지막 커밋인 HEAD 라는 친구가 있습니다. 일반적으로 git reset
은 git add
로 Staged 상태로 들어간 내용은 Untracked 또는 Modified 상태로 바꿔줌을 의미했지만, 이미 생성된 커밋의 경우 git reset HEAD^
를 통해서 해당 커밋을 지우고 Untracked 또는 Modified 상태로 변경할 수 있습니다. 같은 명령어로 git reset HEAD~
를 사용할 수 있는데 ~ 뒤에 숫자를 붙임으로써 생성된 commit 여러 개를 시간 역순으로 동시에 지우고 Untracked 또는 Modified 상태로 나타낼 수 있습니다.
Ex. git reset HEAD~4
(HEAD 에서부터 4번째 커밋으로 돌아감)
P.S. 아직 git push는 얘기도 안 했다.
P.S. git commit
하고서 git reset HEAD^
실행하고 커밋 사라졌다고 울지 말기
'Git' 카테고리의 다른 글
Git이란? Git 사용방법 알아보기 (기초) (0) | 2022.08.17 |
---|---|
Git 팁 - Hook commit-msg 한글 문자열 길이 적용하기 (0) | 2020.07.31 |