프로젝트 폴더.
개념적으로 커밋이 이뤄질 준비가 된 파일의 내용들이 위치하는 영역.
실제로는 하나의 파일.
깃이 버전 관리를 하기 위해 필요로 하는 데이터들을 저장하는 곳.
이곳에 저장된 파일들을 특별히 오브젝트 파일이라 한다.
현재 디렉토리에 .git 폴더를 생성.
깃이 버전 관리를 할 수 있게함.
파일선택.
기존 인덱스와 비교하여 변경된 사항 Index(staging area)로 이동.
모든 파일 스테이징은 git add.
.기호를 사용하면 로컬의 현재 디렉토리에서 add 명령의 대상이 되는 파일들을 모두 인덱스에 반영.
stagin area에서 repository로 이동
지정된 원격 저장소에 존재하는 해당 원격 브랜치에 현재 로컬 브랜치의 내용을 push.
git clone 사용 시 자동 지정.
최근 commit과 현재파일의 차이점 확인
vim 에디터로 확인가능
h,j,k,l 방향키
:q 혹은 :qa로 종료.
특정 커밋과 현재 상태(혹은 특정커밋) 차이 확인
git log --oneline --all
git difftool "" ""
-> git extension 사용(GUI)
user branch에서 작업하다가
front branch에 수정사항이 생겼을때
git checkout front
git pull origin front
git rebase user
git checkout myBranch // myBranch 브랜치로 이동
git pull origin main // main 브랜치 작업물 가져오기
git merge main // myBranch로 변경사항 병합하기
로컬의 내용과 인덱스의 내용을 비교하여 add 명령의 대상이 되는 파일들의 목록을 표시.
동시에 인덱스의 내용과 최신 커밋의 Tree 파일 내용을 비교하여 commit 명령의 대상이 되는 파일들의 목록을 표시.
브랜치 생성
:git branch "~"
브랜치로 이동
:git switch "~"
현재 브랜치 확인
:git status / git branch
특정 브랜치를 main으로 병합
:main으로 이동후 git merge "~"
Conflict 발생시
:코드수정후 add, commit
프로젝트 다운
:git clone, git pull
기본적으로 원격 젖장소의 내용을 가져올 때, 각각의 로컬 브랜치들에 대하여 같은 이름의 원격 브랜치가 업스트림으로 자동 지정.
보통 원격 저장소의 별칭을 지칭.
multiple upstream이 필요한 경우 remote add.
예를 들어 포크된 원격저장소와 원래의 원격저장소에 동시에 push가 가능해짐