📖 git
프로그램 설치
- Visual Studio Community
- git & gitBash
로컬 저장소 생성
로컬 저장소 생성 : git init
해당 폴더에 .git폴더가 생긴다.
* 파일이 삭제되어도, 로컬 저장소에 저장(commit)을 했다면 복구가 가능하다. 그러나 .git폴더도 삭제되었을 경우에는 복구가 불가능하다.
로컬 저장소 사용자 설정
git config를 이용해 설정
사용자 설정 확인 : git config --list
* q를 누르면 나갈 수 있다.
전체 로컬 저장소 사용자 설정
--global 옵션을 추가하여, default 값으로 로컬 저장소 사용자 설정을 할 수 있다.
명령어 정리
1. 폴더 생성 : mkdir [폴더명]
2. 파일 생성 : touch 파일명.파일확장자
3. 현재위치에 존재하는 파일 및 폴더 확인 : ls
4. 현재위치에 존재하는 숨긴 파일 및 폴더 확인 : ls -al 또는 ls -la
5. 특정 폴더 진입 : cd [폴더명]
6. 해당 저장소 사용자 설정 일부 확인 : git config --get [설정항목]
7. 도움말 : git help [커맨드 이름]
git의 세가지 작업영역
Working directory
이력관리 대상 파일들이 위치하는 영역.git 폴더를 제외한 모든 공간
Staging Area
repository에 저장되기 전 이력관리 대상 파일이 위치하는 영역
.git 폴더의 index 파일로 존재
Repository
commited된 파일이 위치하는 영역
.git 폴더에 이력관리를 위한 모든 정보저장
git이 관리하는 세가지 파일상태
modified
commit된 파일을 수정하여 수정(modified) 상태를 가짐
Staged
수정된 파일이 Stagine Area에 있는 상태
Commited
파일 변경사항 기록이 완료된 상태
Staging Area의 용도
일부분의 파일만 commit 가능
합병과정에서 발생하는 충돌을 수정할 수 있다.
commit된 파일 수정가능
파일 상태변화 확인: git status
* git status -u는 untracked 상태인 파일들만 출력해주는 명령어이다.
Staged Area에 위치시키는 3가지 방법 : git add
git add [파일명]
해당 파일 하나만 staged
git add [경로]
해당 경로에 있는 모든 파일 및 폴더 staged
git add .
모든 파일 및 폴더 staged
정상적으로 add 되었는지 확인하기 : git status
git status로 확인시 changes to be commited 라는 문구는 commit할 staged 상태인 파일이 존재한다는 뜻이다.
이력 기록하는 2가지 방법: git commit
git commit
git commit → vim 편집기 자동실행 → i를 눌러 메시지 입력상태 켜기 → 메시지 입력 → 'ESC' 클릭 → :wq 입력 후 엔터 → 저장 후 종료
* vscode로 메시지를 작성할 경우, 최상단에 메시지 작성하고, 저장 후 종료한다.
git commit -m
git commit -m [메시지]를 통해 vim 편집기 사용없이 이력을 기록 할 수 있다.
git status
git status로 확인시 nothing to commit, working tree clean 라는 문구는 commit할 파일은 없으며, working directory에 있는 파일 전부 unmodified 상태임을 알려준다.
commit된 파일을 수정하여 Modified 상태로 만들기
git status으로 확인하기
Changes not staged for commit 라는 문구가 발생하는데, 관리중인 파일에 수정이 발생했으며 commit을 할 수 있는 상태임을 알려준다.
이력관리 대상 제거: .gitignore
.gitignore 파일생성
이력관리 대상으로 제외할 것을 한줄씩 작성한다.
*이력 관리와 관련 없는 파일이나 경로들을 .gitignore 파일에 기록하면, 파일이나 경로들은 변경사항이 발생하더라도 추적하지 않는다.
작성 방법
1. 해당 폴더 내 모든 파일 제외 : 폴더명/
2. 해당 파일명 모두 제외 : 파일명.파일확장자
3. 현재 경로에 있는 파일명 모두 제외 : /파일명.파일확장자
4. 해당 확장자 파일 모두 제외 : *.파일확장자
* .gitignore 파일도 이력관리 대상으로 제거해 주어야한다.
이력 관리를 위해 자주 사용하는 명령어: git add
git add [파일명]
해당 파일 하나만 staged
git add [경로]
해당 경로에 있는 모든 파일 및 폴더 staged
git add .
모든 파일 및 폴더 staged
이력 관리를 위해 자주 사용하는 명령어: git commit
staging area에 있는 파일을 repository에 저장
modified 파일 add와 commit 한꺼번에 실행하기
modified 전 상태로 복구하기
저장소내의 정보를 확인하기 위한 명령어: git status
git status에 -s 또는 --short 옵션을 추가하면, 간략한 파일정보 상태를 출력한다.
?? | untracked |
M | modified |
MM | staged 상태에서 modified 상태로 바뀐 파일 |
A | 경로가 staged 상태인데, 경로 내의 파일이 untracked 상태 |
저장소내의 정보를 확인하기 위한 명령어: git log
저장소에 기록된 이력 출력하는 것으로, 영어로는 commit history이다.
git log를 입력하면, 최근에 commit하여 저장소에 기록된 이력을 출력한다.
git log -[숫자]를 입력하면, 최근 commit에서 숫자 갯수만큼 commit history를 출력한다.
git log -p 또는 -patch를 입력하면, 각 log의 상세정보를 출력한다.
git log -p -[숫자]를 입력하면, 최근 commit에서 숫자 갯수만큼 log의 상세정보를 출력한다.
git log --pretty=oneline를 입력하면, log를 간략하게 한줄로 출력한다.
git log --oneline를 입력하면, log를 간략하게 한줄로 출력하고, hash의 7번째 값까지 출력한다.
git log --oneline --decorate=full를 입력하면, 브랜치나 태그와 관련된 정보를 상세히 출력한다.
git log -- oneline -- decorate --graph를 입력하면, commit history를 그래프로 출력한다.
저장소내의 정보를 확인하기 위한 명령어: git show
git show 명령어는 특정 commit의 상세정보를 확인시 사용한다.
* git log -p 명령어와 다른점은, 지정하여 log를 볼 수 있다는 점이다.
git show 명령어를 입력하면, 최근에 commit하여 저장소에 기록된 이력을 출력한다.
git show [hash 또는 hash 7번째 값까지 입력]를 입력하면, 해당 hash에 해당되는 commit history를 상세히 출력한다.
git show [HEAD]를 입력하면, HEAD가 가리키는 commit의 history를 상세히 출력한다.
commit 간에 변경사항을 비교하는 명령어: git diff
unstaged 파일과 최신 commit된 파일을 비교하려면, git diff 명령어를 입력하면 된다.
staged 파일과 최신 commit된 파일을 비교하려면, git diff --staged를 입력하면 된다.
두개의 commit 간에 비교를 하려면, git diff [변경 전 hash값] [변경 후 hash값]를 입력하면 된다.
* hash값은 7자리까지 줄여서 사용가능 하다.
hash값 대신 상대경로로 HEAD를 사용해도 된다.
git add 취소하기: git reset
git reset 명령어를 사용하여, git add된 파일 또는 파일들을 취소하여, unstaged 상태로 돌려놓는다.
git reset 명령어를 입력하면, staged 상태인 모든 파일이 unstaged 상태가 된다.
git reset [파일명 / 경로]를 입력하면, 특정 파일만 선택하여 unstaged 상태로 되돌릴 수 있다.
git commit 메시지 취소하기: git commit --amend
--amend 옵션을 이용하여, commit의 메시지를 수정 할 수 있다.
git commit --amend를 입력하면, 메시지를 수정할 수 있는 vim 편집기가 자동실행된다.
git commit --amend -m [메시지]를 입력하면, vim 편집기를 생략하고 메시지를 입력할 수 있다.
* --amend 옵션을 사용하면, 새로운 hash값이 부여된다.
과거의 commit으로 복귀: git checkout
git checkout [이동할 commit의 hash값]을 입력하면 해당 commit으로 이동할 수 있다.
또한, 저장소 경로가 main → hash값으로 바뀐다.
과거의 commit에서 이전 commit으로 되돌리는 3가지 방법
- git checkout -를 입력하면, 가장 최근 commit으로 돌아간다.
- git checkout main를 입력하면, main이 가리키는 commit으로 돌아간다.
- git checkout [이전 commit의 hash값]을 입력하면, 해당 hash값을 가진 commit으로 돌아간다.
* HEAD가 main과 떨어지면, Detached 또는 Detached HEAD라고 불린다.
'공부 > 공통' 카테고리의 다른 글
[공부] 코딩 컨벤션 (기본) (0) | 2022.05.12 |
---|---|
[공부] npm 정리 (0) | 2022.05.05 |
[공부] Git 정리 - 팀 프로젝트 (0) | 2022.05.02 |
[공부] git 정리 -3 (0) | 2022.03.06 |
[공부] git 정리 -2 (0) | 2022.03.04 |