git 명령어

김하람·2022년 4월 15일
0

git

목록 보기
1/1

git diff

  • 아직 스테이징 되지 않고 커밋되지 않은 작업 디렉토리의 untracked파일의 변경 사항을 보여준다.

git diff --cached

  • 스테이징 되어 커밋 대기 상태에 있는 tracked된 파일의 변경 사항을 보여준다.

git diff commit1 commit2

  • commit간의 상태 비교하기.

git commit --amend

  • 마지막 커밋에 추가할 사항이 있는 경우 덮어씌운다.

git reset --soft HEAD~

  • HEAD를 특정 커밋으로 이동시킨다.
  • WD 파일 보존, 해당 파일은 staged로 이동한다.
  • commit하면 원래 상태로 복원이 가능하다.
  • staging area에 add된 상태이다.

git reset HEAD~2

  • 최신 커밋 2개 취소

git reset --mixed HEAD~

  • default 옵션이다.
  • WD 파일 보존, 해당 파일 unstated, HEAD이동
  • ~이 하나이므로 한 칸 이전으로 가겠다는 것이다.
  • staging area에 add되지 않은 상태이다.

git reset --hard HEAD~

  • WD파일 변경 사항을 삭제한다. 해당 파일을 unstaged하며, HEAD dlehdgksek.

git rm sample.txt

  • sample.txt의 git 저장소와 로컬디렉터리(WD) 모두 삭제한다.

git rm --cached sample.txt

  • sample.txt의 git 저장소만 삭제한다. 로컬디렉터리(WD)는 삭제하지 않는다.

git clone “Remote repo URL”**

  • 원격 저장소에서 로컬 저장소로 복제한다.
  • 현재 내가 있는 폴더 밑에 생긴다. 그래서 해당 버전과 파일이 복제된다.

git clone “Remote repo URL” abc

  • 클론해 올 저장소의 주소(Remote repo URL)를 지정하고, 저장소를 로컬에 복제할 위치(abc)를 지정한다.

git clone -b Lab1 “Remote repo URL” abc

  • Lab1 페이지를 복제하여 클론하겠다는 것.

git remote

  • 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있다.

git remote -v

  • 연결 상태를 확인한다.

git remote add origin “remote repo URL”

git remote remove origin

  • 로컬 저장소에 원격 저장소를 삭제한다.

git pull 사용법

  • remote에서 생긴 변경사항을 내 repository에 넣는다.

git push 사용법

  • 변경 사항을 원격 repository에 넣는다.

git fetch 와 git pull의 차이

  • git fetch는 내 repository를 그대로 두고 새로운 branch를 만들어서 가져온다.
  • git pull은 내 새로운 branch를 만들지 않고 repository에 넣는다.
  • git pull은 fetch + merge와 같다.

git branch –h

  • 도움말을 볼 수 있는 옵션이다.

git branch -a

  • 모든 repository를 보여준다.

git branch

  • 현재 등록된 브랜치를 확인할 수 있다.

git branch issue1

  • issue1라는 브랜치를 생성한다.

git branch –d issue1

  • 작업 중인 파일이 없는 경우 해당 브랜치(여기서는 issue1)를 삭제한다.

git branch issue2

  • issue2라는 브랜치를 생성한다.

git checkout issue2

  • 현재 master 브랜치에서 issue2 브랜치로 이동한다.

git checkout –b issue1

  • 브랜치 생성과 체크 아웃을 한번에 한다.
  • issue1이라는 브랜치를 생성하고, 생성된 새로운 브랜치로 체크아웃된다.

git branch –D issue1

  • 로컬 브랜치를 삭재한다.
  • issue1이라는 로컬 브랜치를 삭제한다.
  • 작업 여부와 상관 없이 삭제한다.

git checkout master

  • master branch로 이동한다.

git stash

  • 현재 작업 내용을 임시 저장하여 보관하는 장소이다.
  • Working Directory에서 수정한 파일만 저장.
  • 현재 진행 중이던 내용들을 git stash로 저장해두고 다른 브랜치로 이동하여 작업한 뒤 다시 돌아와 복구하여 작업을 계속할 수 있다.

git stash save

  • 임시 저장

git stash list

  • 그동안 저장되었던 작업들의 리스트를 볼 수 있다.

git stash pop

  • stash list의 가장 최근 작업을 가져오고 stash list에서는 삭제한다.

git stash apply

  • stash에 저장된 내용을 다른 브랜치에 적용한다.
  • git stash pop과 비슷하지만, 목록에서 삭제하지는 않는다. 그러므로 여러 브랜치에서 저장된 내용을 적용하는 것이 가능하다.

git stash drop

  • stash에 저장된 내용을 삭제한다.

git stash clear

  • stash에 있는 내용들을 모두 지운다.

git merge TopicA

  • 작업 중이던 TopicA를 merge하겠다는 것.

git merge --no-ff TopicA

  • fast-forward인 경우에도 반드시 병합 커밋을 만든다.
  • 다른 branch에서 merge 했다는 이력을 history에서 잘 보이게 연결할 수 있으며, merge commit을 통해 merge하면서 일어난 변경 사항을 하나로 묶어 볼 수 있다.

merge conflict 상황설명

  • merge conflict는 두 브랜치에서 같은 파일을 수정하여 각각 커밋한 후, 병합하는 경우 발생한다.

merge conflict 해결방법

  • 파일의 내용을 적절히 수정해서 해결할 수 있다.
  • git add로 해결할 수 있다.
  • git commit으로 해결할 수 있다.

revert 와 reset의 차이

  • 특정 커밋으로 되돌아갈 수 있다. 취소할 때 사용한다.
  • reset: 최근 커밋부터 특정 커밋 이후의 버전들을 히스토리에서 삭제. 삭제하지 않고 새롭게 생긴다.
    commit 취소. 특정 커밋으로 돌아감으로 취소 작업을 수행한다.
  • revert: 현재에 있으면서 과거의 특정 사건들만 없던 일로 만든다. 실제로 삭제하고 취소한다.

0개의 댓글