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 |
---|