Git/수업

git_diff reset 브랜치 merge

끈끈 2023. 4. 6. 12:52

 

git diff : 최근 커밋과 작업 디렉터리 비교하기
git diff --staged : 최근 커밋과 스테이지 비교하기
git diff <커밋> <커밋> : 커밋끼리 비교하기 >>> <이 커밋에 비해> <이 커밋이 뭐가 다른지>

 

git log : 커밋 기록 보기
git log --oneline : 앞 부분을 일부 따와서 한 줄로 간단히 보여주고 동작은 같다

 


 

되돌리기

 

revert : 버전을 되돌린 새로운 버전 만들기

 

reset : 버전을 완전히 되돌리기

- soft reset : 커밋만 되돌리기

- mixed reset : 스테이지까지 되돌리기

- hard reset : 작업 디렉터리까지 되돌리기

 

git reset
git reset --soft <되돌아갈 커밋> : <>으로 soft reset 하기
git reset --mixed <되돌아갈 커밋> : <>으로 mixed reset 하기
git reset --hard <되돌아갈 커밋> : <>으로 hard reset 하기

git revert <취소할 커밋> : <>이 취소된 새로운 커밋 만들기

 

git stash : 변경사항 임시 저장하기
git stash -m "메세지" : 변경사항 메세지와 함께 임시 저장하기
git stash list : 임시 저장된 작업 내역 조회하기
git stash apply stash@{숫자} : 임시 저장된 작업 적용하기
git stash drop stash@{숫자} : 임시 저장된 작업 삭제하기

 

stash@{숫자} : stash의 이름과 같다. 숫자는 최근에 임시저장 되었을수록 0에 가깝다!

 

 

 


 

브랜치

 

브랜치?

  • 버전을 여러 개의 흐름으로 관리하는 방법 (버전의 분기)

 

브랜치가 없다면?

  • 같은 코드를 다르게 수정한 부분 혼재
  • 수작업으로 합치다 실수 발생

 

브랜치가 있다면?

  • 브랜치를 나눈다
  • 각자의 브랜치에서 작업한다
  • (필요시) 나눈 브랜치를 합친다 : 같은 부분을 다르게 수정한 부분만 보면 된다

 

 


 

브랜치의 이름?

각 회사의 브랜치 전략을 따른다 (feature/menu, release/2.3.0, hotfix/login 등...)

기본은 master 브랜치

 

 


 

HEAD

현재 작업 중인 브랜치의 최신 커밋

HEAD가 가리키는 브랜치에서 작업 중

 

git branch : 브랜치 목록 조회하기
git branch <브랜치> : <브랜치> 생성하기
git branch -d <브랜치> : <브랜치> 삭제하기

 

체크아웃

특정 브랜치에서 작업할 수 있도록 HEAD의 위치를 특정 브랜치의 최신 커밋으로 옮김

 

git checkout <브랜치> : <브랜치>로 체크아웃하기
git checkout -b <브랜치> : <브랜치> 생성하고 체크아웃하기

 


 

병합(merge)

 

git merge <브랜치> : <브랜치> 병합하기
git merge <브랜치> <브랜치> <브랜치> : 여러 브랜치 한번에 병합하기

 


 

빨리감기 병합(fast-forward merge)

 

master 브랜치가 변함 없이 있었다면,

빨리감기하듯 foo 브랜치에서 추가된 커밋만 반영하는 기법

 

 

 

서로의 브랜치에 없는 커밋이 있다면?

 

두 브랜치를 병합한 새로운 커밋 생성

 

 

 

충돌 발생시 대처법?

 

어떤 내용을 반영할지

직접 선별 후 다시 커밋

 

 

'Git > 수업' 카테고리의 다른 글

깃 허브 시작하기_특강  (0) 2023.03.13