빠른 병합 비활성화

Beginner

This tutorial is from open-source community. Access the source code

소개

Git 은 개발자들이 프로젝트를 효율적으로 협업할 수 있도록 해주는 강력한 버전 관리 시스템입니다. Git 의 기능 중 하나는 빠른 병합 (fast forward merging) 으로, 분기된 커밋이 없는 브랜치를 Git 이 자동으로 병합할 수 있게 해줍니다. 하지만 이 기능은 특히 여러 기여자가 참여하는 대규모 프로젝트에서 때때로 문제를 일으킬 수 있습니다. 이 랩에서는 빠른 병합을 기본적으로 비활성화하는 방법을 배우게 됩니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

빠른 병합 비활성화

기본적으로 Git 은 분기된 커밋이 없는 브랜치를 병합하기 위해 빠른 병합 (fast forward merging) 을 사용합니다. 이는 새로운 커밋이 없는 브랜치가 있는 경우, Git 이 병합하려는 브랜치의 포인터를 병합하려는 브랜치의 최신 커밋으로 단순히 이동시킨다는 것을 의미합니다. 이는 몇몇 경우에 유용할 수 있지만, 특히 여러 기여자가 참여하는 대규모 프로젝트에서 문제를 일으킬 수 있습니다. 예를 들어, 두 명의 개발자가 동일한 브랜치에서 작업하고 둘 다 변경 사항을 적용하는 경우, 빠른 병합은 해결하기 어려운 충돌을 발생시킬 수 있습니다.

빠른 병합을 비활성화하기 위해 https://github.com/labex-labs/git-playground에서 제공하는 저장소를 사용해 보겠습니다.

  1. 저장소를 복제하고, 디렉토리로 이동한 후, 신원을 구성합니다.
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
  1. my-branch라는 브랜치를 생성하고 전환한 다음, hello.txt 파일을 생성하고 "hello,world"를 추가하고, 스테이징 영역에 추가하고 "Added hello.txt" 메시지로 커밋합니다.
git checkout -b my-branch
echo "hello,world" > hello.txt
git add .
git commit -m "Added hello.txt"
  1. 빠른 병합을 비활성화하려면 다음 명령을 실행합니다.
git config --add merge.ff false

이렇게 하면 가능한 경우에도 모든 브랜치에 대해 빠른 병합이 비활성화됩니다. --global 플래그를 사용하여 이 옵션을 전역적으로 구성할 수 있습니다.

git config --global --add merge.ff false
  1. master 브랜치로 다시 전환하고 my-branch 브랜치를 병합한 다음, 텍스트를 변경하지 않고 저장하고 종료합니다.
git checkout master
git merge my-branch

이제 Git 은 빠른 병합이 가능하더라도 항상 병합 커밋을 생성합니다.

commit 6e17a776ab51a89ace069614b0caf1c07915a92c (HEAD -> master)
Merge: ec5ea6d 6d7de91
Author: xiaoshengyunan <@users.noreply.github.com>
Date:   Mon Jul 17 13:30:44 2023 +0800

    Merge branch 'my-branch'

요약

이 랩에서는 빠른 병합을 기본적으로 비활성화하는 방법을 배웠습니다. 이는 여러 기여자가 참여하는 대규모 프로젝트에서 충돌을 방지하고 변경 사항을 더 쉽게 관리하는 데 도움이 될 수 있으므로 유용할 수 있습니다. git config 명령을 사용하여 가능한 경우에도 모든 브랜치에 대해 빠른 병합을 비활성화할 수 있습니다.