프로그래밍_인포/Git&Github

git config pull 3가지의 차이

jjscript 2023. 7. 3. 09:30
728x90
반응형

Git의 설정에서 pull.rebase와 pull.ff 옵션은 git pull 명령의 동작을 어떻게 변경할지를 제어합니다. 기본적으로 git pull은 원격 저장소에서 변경 사항을 가져온 후(git fetch를 수행), 현재 브랜치와 원격 브랜치를 병합(git merge)합니다. 그러나 이 동작은 이러한 설정에 따라 변경될 수 있습니다.

git config pull.rebase false: 이것은 Git의 기본 동작으로, 원격 저장소에서 변경 사항을 가져온 후에 현재 브랜치를 원격 브랜치로 병합합니다. 병합 충돌이 발생할 경우, 병합 충돌을 수동으로 해결해야 합니다.

git config pull.rebase true: 이 설정을 사용하면 git pull은 원격 저장소에서 변경 사항을 가져온 후(git fetch를 수행), 현재 브랜치의 커밋을 원격 브랜치 위로 재배치(git rebase)합니다. 이로 인해 선형적인 커밋 이력을 유지할 수 있지만, 복잡한 상황에서는 원치 않은 결과를 초래할 수 있습니다.

git config pull.ff only: 이 설정을 사용하면 git pull은 "fast-forward" 병합만 수행하도록 제한됩니다. "fast-forward" 병합이란, 현재 브랜치가 가리키는 커밋이 원격 브랜치의 커밋에 대한 직접적인 조상일 때만 가능합니다. 이렇게 설정하면, 커밋 이력이 강제로 변경되는 것을 방지할 수 있습니다. "fast-forward"가 아닌 병합이 필요한 상황에서는 git pull이 실패하며, 이 경우 별도의 git merge나 git rebase 명령을 수동으로 수행해야 합니다.

728x90
반응형