2장.깃으로 버전 관리 시작하기
●작업디렉터리: 버전 관리의 대상이 위치하는 공간
●버전관리: 작업디렉터리의 변경사항을 관리
●스테이지: 다음 버전이 될 후보가 올라가는 공간
●저장소: 버전이 만들어지고 관리되는 공간
●커밋해시: 각 커밋이 가진 고유한 ID
●태그: 특정 커밋에 붙일 수 있는 꼬리표. 의미 있는 커밋이 무엇인지 한눈에 알아볼 수 있음.
3장 버전 가지고 놀기
●커밋되돌리기
1.revert: 버전을 되돌리되, 되돌아간 상태에 대한 새로운 버전을 만드는 방식. 기존 버전은 삭제되지 않음.
2.reset: 되돌아갈 버전의 시점으로 완전하게 되돌아가는 방식. 기존 버전은 삭제됨.
2-1.soft reset: 커밋했다는 사실만 되돌림
2-2.mixed reset: 스테이지와 커밋을 되돌리는 reset
2-3.hard reset: 작업 디렉터리 내 변경 사항까지 통째로 되돌리는 reset
●스태시(stash) : 임시 저장 기능. 마음에 들진 않지만 버리기 아까운 작업을 처리할 때 사용. 스테이지에 이미 올라와 있거나 한번이라도 커밋한 적이 있는 파일에만 사용할 수 있음.
4장.브랜치로 나누어 관리하기
●버전관리 3단계
●HEAD: 현재 작업 중인 브랜치의 최신 커밋.
●CheckOut: 특정 브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것.
●merge: 브랜치를 하나로 통합하는 방법
●충돌: 병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황
●충돌 해결방법: 1.어떤 브랜치의 내용을 반영할지 직접 선택한다. 2. 다시 커밋한다
재배치(rebase)
5장. 깃허브로 협업하기
●원격 저장소의 네가지 상호작용
1.clone : 복제
2.push: 원격저장소에 로컬 저장소의 변경사항 밀어넣기
3.fetch: 원격 저장소를 일단 가져만 오기. 병합을 하진 않음.
4.pull: 원격 저장소를 가져와서 합치기. fetch + merge
●원격 저장소 브랜치 이름
main 브랜치 == master 브랜치
origin == 원격 저장소에 붙은 별명
origin/HEAD == 원격 저장소 origin의 HEAD
origin/main == 원격 저장소 origin의 manin
●Pull Request: 원격 저장소가 내 변경사항을 풀(Pull)하도록 요청(Request)을 보내는 방식
깃명령어
git init: 로컬 저장소 만들기
git status: 작업 디렉터리 상태 확인하기
git add
- git add <스테이지에 추가할 대상>: <스테이지에 추가할 대상>을 스테이지에 올리기
- git add . : 모든 변경 사항을 스테이지에 올리기
git commit
- git commit : 자세한 커밋 메시지와 함께 커밋하기
- git commit --message "<커밋 메시지>" / git commit -m "<커밋 메시지>" : <커밋 메시지>로 커밋하기
git log
- git log : 커밋 목록 조회하기
- git log --oneline : 커밋 목록을 한 줄로 조회하기
- git log --patch / git log -p : 커밋별 변경 사항 목록 조회하기
- git log --graph : 커밋 목록을 그래프로 조회하기
- git log --branches : 모든 브랜치의 커밋 목록 조회하기
git tag
- git tag <태그> : <태그> 추가하기
- git tag <태그> <커밋> : <커밋>에 <태그> 추가하기
- git tag / git tag --list / git -l : 태그 목록 조회하기
- git tag --delete <태그> / git tag -d <태그> : <태그> 삭제하기
touch: 파일 생성하기
git diff
- git diff : 최근 커밋과 작업 디렉터리 비교하기
- git diff --staged : 최근 커밋과 스테이지 비교하기
- git diff <커밋2> <커밋1> : <커밋1>로 <커밋2>와 비교하기
- git diff <브랜치2> <브랜치1> : <브랜치1>로 <브랜치2>와 비교하기
git revert
- git revert <취소할 커밋> : <취소할 커밋>이 취소된 새로운 커밋 만들기
git reset
- git reset --soft <되돌아갈 커밋> : <되돌아갈 커밋>으로 soft reset하기
- git reset --mixed <되돌아갈 커밋> / git reset <되돌아갈 커밋> : <되돌아갈 커밋>으로 mixed reset 하기
- git reset --hard <되돌아갈 커밋> : <되돌아갈 커밋>으로 hard reset 하기
git stash
- git stash : 변경 사항 임시 저장하기
- git stash --message "<메시지>" / git stash -m "<메시지>" : <메시지>와 함께 변경 사항 임시 저장하기
- git stash list : 임시 저장된 작업 내역 조회하기
- git stash apply <스태시> : 임시 저장된 작업 적용하기
- git stash drop <스태시> : 임시 저장된 작업 삭제하기
git branch
- git branch : 브랜치 목록 조회하기
- git branch <브랜치> : <브랜치> 만들기
- git branch --delete <브랜치> / git branch -d <브랜치> : <브랜치> 삭제하기
git checkout <브랜치> : <브랜치>로 체크아웃하기
git checkout -b <브랜치> : <브랜치> 생성하고 체크아웃하기
git rebase <브랜치> : <브랜치>로 재배치하기
git clone <원격 저장소> : 원격 저장소를 복제하기
git remote
- git remote add origin <원격 저장소 이름> <원격 저장소> : <원격 저장소> 추가하기
- git remote : 원격 저장소 이름 조회하기
- git remote --verbose : 원격 저장소 이름과 경로 조회하기
git push
- git push <원격 저장소 이름> <브랜치> : <원격 저장소 이름>에 <브랜치>를 밀어넣기
git fetch
- git fetch <원격 저장소 이름> : 원격 저장소를 일단 가져만 오기
git pull
- git pull <원격 저장소 이름> : 원격 저장소를 가져와서 합치기
git <명령> --help : <명령>에 대한 매뉴얼 페이지 보기
출처:모두의 깃&깃허브(저자:강민철 / 출판사:길벗)