[GIT] Git 기초 총정리

Jay ·2023년 1월 28일
0

용어

Local(Working directory)

프로젝트 폴더.

Index(Staging area)

개념적으로 커밋이 이뤄질 준비가 된 파일의 내용들이 위치하는 영역.
실제로는 하나의 파일.

Repository

깃이 버전 관리를 하기 위해 필요로 하는 데이터들을 저장하는 곳.
이곳에 저장된 파일들을 특별히 오브젝트 파일이라 한다.

기초 명령어

0. git init

현재 디렉토리에 .git 폴더를 생성.
깃이 버전 관리를 할 수 있게함.

1. add

파일선택.
기존 인덱스와 비교하여 변경된 사항 Index(staging area)로 이동.
모든 파일 스테이징은 git add.
.기호를 사용하면 로컬의 현재 디렉토리에서 add 명령의 대상이 되는 파일들을 모두 인덱스에 반영.

2. commit

stagin area에서 repository로 이동

3. push

지정된 원격 저장소에 존재하는 해당 원격 브랜치에 현재 로컬 브랜치의 내용을 push.

git clone 사용 시 자동 지정.

4. difftool

최근 commit과 현재파일의 차이점 확인
vim 에디터로 확인가능
h,j,k,l 방향키
:q 혹은 :qa로 종료.

예제

특정 커밋과 현재 상태(혹은 특정커밋) 차이 확인
git log --oneline --all
git difftool "" ""

-> git extension 사용(GUI)

5. merge

6. rebase

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로 변경사항 병합하기

5. git status

로컬의 내용과 인덱스의 내용을 비교하여 add 명령의 대상이 되는 파일들의 목록을 표시.
동시에 인덱스의 내용과 최신 커밋의 Tree 파일 내용을 비교하여 commit 명령의 대상이 되는 파일들의 목록을 표시.

브랜치 작업 명령어

  1. 브랜치 생성
    :git branch "~"

  2. 브랜치로 이동
    :git switch "~"

  3. 현재 브랜치 확인
    :git status / git branch

  4. 특정 브랜치를 main으로 병합
    :main으로 이동후 git merge "~"

  5. Conflict 발생시
    :코드수정후 add, commit

  6. 프로젝트 다운
    :git clone, git pull
    기본적으로 원격 젖장소의 내용을 가져올 때, 각각의 로컬 브랜치들에 대하여 같은 이름의 원격 브랜치가 업스트림으로 자동 지정.

의문점 정리

1. origin? master?

보통 원격 저장소의 별칭을 지칭.

2. git clone vs git pull

3. git remote add vs git clone

multiple upstream이 필요한 경우 remote add.
예를 들어 포크된 원격저장소와 원래의 원격저장소에 동시에 push가 가능해짐

profile
Jay입니다.

0개의 댓글