본문 바로가기

Git

Git - 기본적인 내용 정리

Tracked file
- 한번이라도 저장소에 들어갔던 파일

Uuntracked file
- 한번도 저장소에 들어가지 않은 파일

Working Area
- 작업 공간

Staging Area
- 커밋에 대상이 되는 파일이 저장소에 들어가기 직전의 상태
- git add 를 사용하게 되면 staging area 로 들어감

git diff
- working area와 staging area 상태를 비교하는 명령어

git diff --staged
- staging area와 저장소 상태를 비교하는 명령어

git add -u .
- tracked 파일들만 add 하겠다라는 명령어

git commit --amend
- 마지막 커밋 취소

git reset --hard
- 마지막 작업햇던 커밋으로 돌아가기 (아몰라 다시 시작~)

git stash / git stash pop
- 잠시만 스택에 보관
- stash 라는 공간에 저장
- pop 시 마지막 stage 만 pop 함

git pull --rebase

만약 pull 하는데 충돌이 났다?
- git reset --hard
- git pull 
로 해결

git reflog
- 최근 작업했던 커밋, 이력들 저장

git 내부 기본 원리
- git은 모든걸 파일로 관리한다.
- file의 기본은 object라고 부른다.
- object는 커밋, 파일, 트리가 있다.
- file은 linked list로 구성되어있음.

브랜치 : 커밋에 대한 포인터~ 

git clone
- 저장소의 .git 파일을 복사해서 어느 디렉토리에 두고
헤드의 아이디를 찾아서 그 헤드에 대한 파일을 보관시키는것

커밋들이 linked list로 이어져 있다.

댕글링 - 기존 브랜치들과 떨어져서 다른 길을 가고있다. 

git flow [방식 이름]

 

branch

메인터넌스 브랜치(maintenance branch)
- 버전별로 관리하는 브랜치
- 적을수록 좋다.

개발 브랜치(development branch)
- 개발 최신 버전을 기준으로 브랜치를 따서 넣는다.
- rebase로 최신 번영이 반영된 기준으로 pr을 준다.
(rabase 개념 추가적으로 공부 필요)

주제 브랜치(topic branch: feature/hotfix) 
- 이슈 기준으로 생성

cherry pick 

- 개념 공부 필요

커밋 첫 줄은 짧게 쓰는게 추세 (50 characters or less)

파일 수정된 내용을 되돌리고 싶을 때
git reset? git checkout?

 

reset
staging 영역을 다 지우고 헤드를 지금 현재 브랜치의 최신으로
커밋에 대상되는 파일을 되돌린다.
=> stage 에 있는것을 지운다

checkout
working 디렉토리의 파일을 저장소의 파일로 교체한다.

./.git/info/exclude
에 로컬에서만 사용하는 파일 이름 넣어두면
git status 에서 제외된다.
(로컬에서만 ignore)

'Git' 카테고리의 다른 글

Git - 기본적인 내용 정리2  (0) 2020.11.20