본문 바로가기

Git

[Git] Git Flow 이해하기 - (4) Fast-Forward와 --no-ff 옵션

Fast-Forward와 --no-ff 옵션

1. 새로운 파일 추가: feature 브랜치 생성 및 작업

  • feature 브랜치 생성 및 전환
git checkout develop git pull origin develop # 최신화 
git checkout -b feature/signup # 새로운 기능 브랜치 생성

 

  • 새로운 파일 signup.txt를 추가하여 사용자 등록 기능을 개발
echo "사용자 등록 기능 개발 중" > signup.txt

 

  • 변경 사항 커밋 및 푸시
git add signup.txt git commit -m "signup 기능 개발 시작" 
git push -u origin feature/signup

 

 

2. feature 브랜치 병합: develop으로 병합 (with --no-ff)

  • 병합 작업 전 develop 브랜치로 전환
git checkout develop git pull origin develop # 최신화

 

  • 병합 (with --no-ff)
git merge --no-ff feature/signup git push origin develop

 

  • feature 브랜치 삭제 병합 후 feature 브랜치를 삭제
git branch -d feature/signup git push origin --delete feature/signup # 원격 브랜치 삭제

 

 

3. release 브랜치 생성 및 작업

  • release 브랜치 생성 및 전환
git checkout develop git pull origin develop # 최신화 git checkout -b release/2.0

 

  • project.txt 파일에 새 버전 정보를 추가
echo "버전 2.0 준비 완료" >> project.txt

 

  • 변경 사항 커밋 및 푸시
git add project.txt git commit -m "2.0 버전 준비 완료" 
git push -u origin release/2.0

 

 

4. release 브랜치 병합: master 및 develop에 병합 (with --no-ff)

  • release/2.0 브랜치를 master 브랜치로 병합
git checkout master git pull origin master # 최신화 
git merge --no-ff release/2.0 
git push origin master

 

  • 태그 생성 및 푸시
git tag -a v2.0 -m "버전 2.0 출시" 
git push origin v2.0

 

  • develop 브랜치로 병합
git checkout develop git pull origin develop # 최신화 
git merge --no-ff release/2.0 
git push origin develop

 

  • release 브랜치 삭제
git branch -d release/2.0 
git push origin --delete release/2.0

 

 

5. hotfix 브랜치 생성 및 긴급 수정

  • hotfix 브랜치 생성 및 전환
git checkout master 
git pull origin master # 최신화 
git checkout -b hotfix/2.0.1

 

  • 버그 수정 내용 추가
echo "버그 수정: 사용자 등록 오류 수정" >> signup.txt

 

  • 변경 사항 커밋 및 푸시
git add signup.txt 
git commit -m "사용자 등록 오류 긴급 수정" 
git push -u origin hotfix/2.0.1

 

 

6. hotfix 브랜치 병합: master 및 develop에 병합 (with --no-ff)

  • master 브랜치로 병합
git checkout master 
git pull origin master # 최신화 
git merge --no-ff hotfix/2.0.1 
git push origin master

 

  • develop 브랜치로 병합
git checkout develop 
git pull origin develop # 최신화 
git merge --no-ff hotfix/2.0.1 
git push origin develop

 

  • 태그 생성 및 푸시
git checkout master 
git tag -a v2.0.1 -m "버전 2.0.1 긴급 수정" 
git push origin v2.0.1

 

  • hotfix 브랜치 삭제
git branch -d hotfix/2.0.1 
git push origin --delete hotfix/2.0.1

 

 

위의 예시는 하나의 txt 파일을 계속 수정하는 형태로 --no-ff 옵션을 주어 브랜치의 그래프를 확인했다.

하지만 다양한 파일을 추가하는 형태라면 해당 옵션을 주지 않아도 잘 나타나는 것을 알 수 있다.

 

또는 소스트리에서 다음과 같은 설정을 하면 된다.