브랜치 생성
cd /workspace/project1
git log --oneline #커밋 로그 보기
git branch #현재 브랜치 확인
git branch project1 #새로운 브랜치 생성
git branch #현재 브랜치 확인
git log --oneline --all #변경된 브랜치 확인
브랜치 체크아웃
git checkout project1 #브랜치 체크아웃
git branch #현재 브랜치 확인
빨리감기(fast-forward)병합
git status #파일 변경후 스테이지 확인
git add file1.java #스테이지에 추가
git commit #커밋 추가
git log --oneline --all --graph #커밋 로그 보기
git checkout master #마스터 브랜치 체크아웃
cat file1.java #파일이 이전으로 돌아갔는지 확인
git merge project1 #병합
git log --oneline --all --graph #로그확인
cat file1.java #파일 재확인
리셋
git reset --hard <이동할 커밋 체크섬>
git reset --hard HEAD~2 #브랜치 되돌리기
HEAD~2 두 번째 부모 커밋을 가리킨다
HEAD^2 두 번째 부모를 가리킨다(병합 커밋처럼 부모가 둘 이상인경우 사용)
리베이스1)
git checkout project1 #브랜치 체크아웃
git rebase master
git log --oneline --all #project1은 master위에 있기 때문에 변한게 없다
git checkout master
git rebase project1 #반대 방향에서 rebase
git log --oneline --all #변경 사항을 확인해 보면 빨리 감기 병합이 됬다
git push
git branch -d project1 #브랜치 삭제
git log --oneline --all --graph #로그확인
리베이스2)
1. HEAD와 대상 브랜치의 공통 조상을 찾는다
2. 공통 조상 이후에 생성한 커밋들을 대상 브랜치 뒤로 재배치
git checkout feature1
git reset --hard HEAD~ #현재 브랜치를 한단계 되돌린다(병합커밋 사라짐)
git log --oneline --all --graph
git rebase master #HEAD 브랜치의 커밋들을 master로 재배치
git push
에러발생시
git status #충돌 대상 확인 및 수동으로 충돌 해결
git add file1.java
git status
git rebase --continue #리베이스 계속 진행(리베이스는 commit아님)
git log --oneline --graph --all n2
git checkout master
git merge feature1
리베이스3)
git reset --hard HEAD~
git rebase origin/master #로컬 master브랜치의 가지 커밋이 origin/master브랜치 위로 재배치
git log --oneline --all --graph n3
git push
태그
git tag -a -m <메세지> <태그이름> [브랜치 or 체크섬] 브랜치를 생략하면 HEAD에 태그를 생성
git push <원격저장소 별명> <태그이름> 원격 저장소에 태그를 업로드
git log --oneline
git tag -a -m "태그생성" v0.1 #주석 있는 태그 작성
git log --oneline
git push origin v0.1 #태그 푸시
3-way병합
git checkout feature1
git log --oneline --all
git merge master #마스터와 병합 시도
git status #병합 실패 원인 확인 (git merge --abort #병합취소)
<<<<<< HEAD (현재변경사항)
aaaa
======
2222
>>>>>> master (수신변경사항)
git add file1.java
git status
git commit
git log --oneline --all --graph
'DEV > Git' 카테고리의 다른 글
Git CLI 정리 (0) | 2022.12.28 |
---|---|
Git 파일 제외 (0) | 2021.01.12 |
GitHub Desktop 사용법 (0) | 2020.09.07 |
Remote Repository 다른 사용자 초대 및 Clone (0) | 2020.08.31 |
GitHub Repository 생성 (0) | 2020.08.31 |