Notice
Recent Posts
Recent Comments
Link
솔미는 성장중
[Github] Branch를 활용한 협업 방법 본문
728x90
협업 실습 : repo에서 가져와 branch에서 수정하고 pull request 보내기
- git clone
- git branch 브랜치명
- git switch 브랜치명 (또는 2,3번 대신에 git switch -c 브랜치명)
- 내용 수정 및 저장
- git add .
- git commit -m"커밋내용"
- git push origin 브랜치명
branch
- 현재 작업 중인 내용 유지하면서 파일과 커밋 기록을 별도로 관리하고자 할 때 사용
- 분기하면 그때부터는 커밋 기록이 완전히 별도로 관리됨
개념적인 부분을 자세히 공부하고 싶다면 여기를 참고하자
(브랜치 용어정리, checkout, switch, merge, rebase, conflict)
명령어 참고
branch 목록 보는 명령어들
git branch git branch --list git branch -a git branch -all
branch 생성과 동시에 이동
git switch -c 브랜치명 git checkout -b 브랜치명
충돌
같은 줄이어도 기존 데이터를 건드리지 않고 추가하는 것은 상관없다초기화 (git 관리 상황 지우기)
: git init 이전으로 되돌아간다.rmdir/ /s /q .git (윈도우용) rm -rf .git (윈도우 -깃배쉬)
삭제
git branch -D 브랜치명
그래프 형태로 커밋 기록 보는 명령어
git log --graph --decorate --oneline
가지치기 (원격 저장소 github에 없는 거 삭제. 동기화과정, github에서 삭제된 repo를 반영.)
git fetch --prune
### Fast-forward
> - Fast-forward 란?
커밋기록을 땡겨오기 때문에분기된 커밋기록이 아니라 일자로 된 커밋기록이 생긴다!
장점: 분기점이 남지 않기 때문에 커밋 기록을 더 직관적으로 볼 수 있다
단점: 머지했다는 기록도, 분기점도 없다.
#### 기록을 남기고 싶다면 어떻게 해야할까?
fastforward쓰지 말라는 뜻
git merge develop --no-ff
- --no-ff 옵션
: 기능 분기에 대한 명확한 개념을 원할 때 유용
: fastforward를 금지시킴
### Rebase
- no fast-forward 형태인 것을 fast-forward형태로 바꾸기
git rebase
<aside>
💡 rebase 는 정확히 말하면 병합을 위한 것이 아니라, 커밋 히스토리를 정렬하기 위한 명령어. 이미 병합이 된 브랜치가 있더라도, 거기서 rebase 를 하면 커밋 히스토리를 다시 정렬할 수 있다.
</aside>
<br/>
<aside>
💡 rebase 는 커밋 이력을 단순히 관리하고 싶을 때 사용하는 명령어이고, merge 는 변경 이력을 모두 남기고 싶을 때 사용하는 명령어. 커밋 이력을 남기는 것이 중요하기 때문에 보통은 merge 만을 사용.
</aside>
### Pull
> **pull
= fetch(원격 저장소 내용가져오기) + merge(그 내용을 로컬 저장소에 머지)**
- pull할때도 병합 방식을 지정할 수 있다.(--ff 또는 --no-ff)
- 만약 merge하고 싶지 않다면 fetch만 사용하면 된다!
728x90
'Github' 카테고리의 다른 글
[Github] github 사용하면서 생겼던 여러 에러 / 문제 해결법 (0) | 2023.07.17 |
---|---|
[Github] Git 이론 정복하기 (0) | 2023.07.17 |
[Github] 깃헙에서 lfs 포함 파일 내려받기 : git clone vs zip download (0) | 2023.07.17 |