참고하기 좋은 문서
https://git-scm.com/book/en/v2
Git 설정
git config --global -e
- gitconfig 파일을 에디터로 오픈
git config --global core.editor "code --wait"
- gitconfig 파일을 에디터로 오픈한 뒤 터미널이 기다리도록 설정
git config --global user.name "seomj"
- 이름 설정
git config --global user.email "이메일 주소"
- 이메일 설정
git config --global core.autocrlf true
- core.autocrlf를 window에서 true로 설정: \r(carriage-return)을 처리해줌
git init
- git 초기화
기본적으로 master branche가 생성됨
git config --global alias.st status
- status 대신 st로 대체 가능
git config --h
- 명령어 config 속성값 확인
Git 기본
git status
- 현재 파일의 상태들을 확인할 수 있음
git add <file>
- working directory에서 untracked된 파일들을 tracking 함
-> working directory에서 staging area로 파일 이동
git rm --cachced <file>
- staging area에서 제거
- 파일이 working directory의 untracked된 상태로 돌아옴
echo <file> > .gitignore
- tracking 하고 싶지 않은 파일을 gitignore에 추가
git diff
- working directory에 있는 파일중에 정확히 어떤 파일의 내용이 수정이 되었는지 확인
- Unstaged 된 파일을 비교
git diff --staged
git diff --cached
- staging area에 있는 파일을 비교
git commit
- .git directory로 파일 이동
git commit -m
- 메시지를 첨부
git commit -a
- working directory와 staging area에 있는 모든 파일들을 commit
git log
- log 확인
과거로 돌아가기
git reset <commit id> --hard
git revert
git add 원리
파일의 이름은 index에
파일의 내용은 objects에
파일의 이름이 달라도 파일의 내용이 같으면 같은 오브젝트 파일을 가르킨다
Objects 파일명의 원리
sha1을 통해 만들어진 해시 값으로 오브젝트 파일명을 지정
git commit 원리
commit한 버전은 objects 파일로 저장
objects 파일에 tree가 존재
-> tree의 값을 보면 작성한 버전의 해당되는 파일의 이름들과 그 파일의 내용이 링크되어 있음
objects 파일
1. blob: 파일의 내용
2. tree: 디렉토리의 파일명과 그 파일명의 내용에 해당하는 정보
3. commit: objects id도 가지며, 각각의 id
git branch
- branch 생성
git checkout
- branch 전환
git checkout -b
- git branch와 git checkout을 동시에 수행
git log --branches
git log --branches --decorate --graph
git log --branches --decorate --graph --oneline
- log를 branch 형태로 확인
git merge
- branch 병합
git branch -d
- branch 삭제
git stash
- stash 생성
git stash apply
- stash 적용
git stash list
- stash list 확인
git stash drop
- stash 삭제
git stash pop
- git stash apply와 git stash drop을 수행
https://youtube.com/playlist?list=PLuHgQVnccGMA8iwZwrGyNXCGy2LAAsTXk
'Study > Git' 카테고리의 다른 글
[Git] 하나의 컴퓨터에서 여러 계정의 Git 사용 & Private repository와 Jenkins 연동 (0) | 2023.10.21 |
---|---|
[Git]Branch 관리 및 병합 (0) | 2023.02.10 |
[Git]Git 기초(Remote Repository)(feat. github token) (0) | 2023.02.10 |
[Git]Git 기초(Local Repository) (0) | 2023.02.06 |