브랜치 (branch) :
메인 브렌치 : v n.n
ex) v1.0 v1.2 v3.7
기능 개발 : feature/____
ex) feature/login feature/select-product
출시 준비 : release-n.n
ex) release1.4 release-2.6
긴급 수정 : hotfix-n.n.n
ex) hotfix-1.2.0 hotfix-5.0.3
fast-forward :3-ways :PR (pull request) : 병합 요청
1. git branch로 현재 생성된 브랜치들과 위치를 확인합니다. (feature/login)
2. git branch -r를 입력하여 원격저장소에 존재하는 브랜치들을 확인합니다.
3. git push origin feature/login을 입력하여 feature/login branch를 원격저장소별칭(origin)의 브랜치에 추가합니다.
pull request과정을 통해 GitHub Repository Branch목록에서 feature/login branch가 추가된 것을 확인할 수 있습니다.main 브랜치만이 존재합니다.git branch -r를 입력하면 main, feature/login 브랜치를 확인할 수 있습니다. (원격저장소에 존재하는 브랜치 확인)git branch를 입력하면 main, feature/login, feature/select-product 브랜치가 존재하는 것을 볼 수 있습니다.git fetch -p를 입력하여 동기화 시켜줍니다.->git branch -r로 feature/login을 확인 할 수 없습니다. (정리됨)git checkout main으로 이동한 다음 git branch -D feature/login을 입력하여 로컬저장소에서도 삭제해줍니다.git log에 merge commit이 없습니다. (GitHub에서만 진행됨)git pull origin main으로 불러와주면 merge commit을 확인이 가능합니다.GitHub에서 merge → (동기화) git fetch -p → (이동) git checkout main → (커밋로그) git pull origin main → (삭제) git branch -d ____
브랜치를 만든다고해서 바로 병렬로 되는것이 아니라 commit을 해주어야 합니다.
login branch에서 열심히 개발하고, select-product branch에서 commit 하면 날라갑니다.
항상 위치를 정확히 확인하고 commit 합니다. (commit을 친 순간 롤백(되돌리기)이 안됩니다.)
| 명령어 | 설명 |
|---|---|
| git branch | 생성되어 있는 브랜치 확인이 가능합니다. |
| git branch (브랜치명) | (브랜치명)의 branch를 생성할 수 있습니다. |
| git checkout (브랜치명) | (브랜치명)의 branch로 이동 합니다. |
| git checkout - | 이전에 있었던 branch로 이동합니다. |
| git branch -r | 원격저장소에 있는 브랜치들을 확인이 가능합니다. |
| git fetch | 원격저장소의 최신 상태를 로컬저장소로 가져옵니다. |
| git fetch -p | 원격저장소에서 삭제된 브랜치를 로컬에서 정리합니다. |
| git checkout -t (origin/feature/1) | 원격저장소에 있는 브랜치를 추적합니다. |
| 원격저장소의 브랜치를 로컬에 새로운 브랜치로 생성합니다. |
git push, git pull만 입력<깃 브랜치 생성>
<login 브랜치에서의 login 작성했지만 select/product 브렌치에서는 적혀있지 않은 것을 확인>
<login과 select/product의 깃 히스토리>
영향을 주고있지 않음을 확인 가능합니다. = 병렬개발이 가능합니다.
<깃에만 있는 feature/login브랜치를 깃허브로 추가 >
<Compare & pull request와 Contribute 두군데서 pr을 확인가능합니다.>
<md로 pr작성>
<merge 완료후 branch 삭제>
<commit에서도 확인가능>
<merge이후 삭제했지만 로컬에는 남아있는 브랜치들>
<git fetch -p로 동기화>
<로컬저장소에서도 삭제된 브랜치>
<내용이 다른 PR>
<main과 feature/1을 1차로 merge>
<2차로 feature/2를 merge하려는데 자동결합이 불가>
<Resolve conflicts로 비교진행>
<무엇을 남길지 결정>
<Commit merge로 수정 마침>
<merge가 이뤄진 모습>
<GitHub에서도 브랜치 삭제 & 로컬저장소에서도 fetch해서 동기화, pull해서 commit로그 가져온 후, 남은 브랜치 제거 >
learned : 협업을 위해 git에서 branch를 사용하여 하나의 프로젝트에서 독립적으로 개발을 할 수 있는지 배웠습니다.
liked : 공유이외에도 분산해서 개발을 할 수 있다는 방법을 배울 수 있어서 많은 도움이 될 것 같습니다.
lacked : 초반에 작업중인 브랜치 확인을 실수를 하고 커밋하여 다시 해야하는 상황이 있었습니다.
longed for : 지금까지 배운 git에 대한 자료들을 다시 정리하며, 자연스럽게 사용할 수 있도록 보충하려고합니다.