git commend 정리

이영주·2020년 11월 21일
0

깃의 세가지 작업 영역

  1. Working directory
    작업을 하고있는 프로젝트의 디렉토리

  2. Staging area
    git add를 한 파일들이 존재하는 영역

  3. repository
    working directiory의 변경 이력들이 저장되어있는 영역

git reset

  1. head가 가거의 특정 커밋을 가르키도록 한다. (--soft)

  2. staging area를 과거의 특정 커밋의 내용과 똑같게 만든다. (--mixied)

  3. working directory를 과거의 특정 커밋의 내용과 똑같게 만든다. (--hard)

branch merge 하기

  1. merge
    git merge master
    현재 위치인 브랜치에서, master 브랜치를 합친다.

  2. conflict
    1.두개의 파일 내용중 무엇을 반영해야할지 모르기 때문에 충돌이 발생한다.
    conflict가 발생한 파일을 열고 수정, 커밋해준다.

  3. merge 시도를 취소하고 싶을 때
    git merge --abort 명령어는 merge를 시도하기 이전의 상태로 돌아간다.

  4. 여러 파일에서 conflict가 났을 때
    git status 커맨드로 conflict가 난 파일들의 목록을 확인하고 수정한다.

git commend 모음

git branch [새 브랜치 이름] : 새로운 브랜치를 생성

git checkout -b [새 브랜치 이름] : 새로운 브랜치를 생성하고 그 브랜치로 바로 이동

git branch -d [기존 브랜치 이름] : 브랜치 삭제

git checkout [기존 브랜치 이름] : 그 브랜치로 이동

git merge [기존 브랜치 이름] : 현재 브랜치에 다른 브랜치를 머지

git merge --abort : 머지를 하다가 conflict가 발생했을 때, 일단은 머지 작업을 취소하고 이전 상태로 돌아감

git pull

내 로컬레포지토리를 수정하는 동안 리모트레포지토리에 변화가 생겼다면
바로 push하는게 아니라 git pull을 해야한다.
git pull은 리모트레포지토리의 내용을 내 로컬레포지토리에 merge하는 과정이다.

git fetch

브랜치를 가져온다는 것은 브랜치가 가리키고 있는 커밋 이전에 이루어진 모든 커밋들을 가져온다. 머지는 하지 않고 가져오기까지만 해주는 커맨드가 바로 fetch이다.

이미 Remote Repositiory에 올라간 커밋을 취소하기

git revert <되돌리고 싶은 커밋아이디>
최신 커밋에서 한 작업을 지우고 다시 커밋을 해준다.

여러 커밋 취소하기

git revert <커밋아이디1>..<커밋아이디2>

커밋아이디1 바로 다음부터 커밋아이디2 까지

git reflog

헤드가 이때까지 가르켜왔던 커밋들을 기록한 정보 원하는 커밋들을 볼 수 있다.
git reset --hard HEAD@{1}

git premium origin/premium

git rebase
간단한 함수들은 프리미엄 브랜치에 바로 추가할거지만 복잡한 코드는 실험 후 추가
git branch test 에서 작업하다가 merge 대신 rebase를 쓴다.
merge와 비슷하지만, rebase는 새로운 merge commit이 생기는 대신 구조가 변화하게 된다.
결과물은 같으나 커밋 히스토리를 깔끔하게 만들고 싶을 때 사용한다.
만약 두 브랜치를 합쳤다는 정보가 히스토리에 남아야 한다면 쓰지 못한다.

git stash

안전한 곳에 보관하다, 넣어두다.
최근 커밋 이후로 작업했던 내용은 모두 스택에 옮겨지고
working dirctory는 다시 최근 커밋의 상태로 초기화된다.
어떤 브랜치에서 하던 작업을 아직 커밋하지 않았는데 다른 브랜치로 가야하는 상황에서 잠깐 저장하고 싶을 때 사용한다.

잘못된 브랜치에서 작업하고 있었을 때

  1. git stash로 stack에 작업 내용을 저장한다.
  2. 올바른 브랜치로 가서 다시 Git stash apply를 한다.
  3. apply 후 스택에 쌓인 작업 내용을 삭제해준다.
    git stash list 커맨드로 현재 스택의 작업 내용을 확인하고 git stasg drop stash@{0} 드랍해준다.
    스택에 작업물이 많이 쌓이면 보기 힘들어지기 때문이다.

git stash : 작업 내용 저장
git stash list : 작업 내용 조회
git stash apply [작업 내용의 아이디] : 작업 내용 적용
git stash drop [작업 내용의 아이디] : 작업 내용 제거 / 아이디 생략하면 최근의 작업 내용이 제거된다.
git stash pop [작업 내용의 아이디] : 특정 작업의 내용을 적용함과 동시에 스택에서 제거한다.

필요한 커밋만 가져오는 법

git cherry-pick [작업 내용의 아이디]
원하는 작업이 있는 커밋의 내용만 가져올 수 있는 커맨드

0개의 댓글