리베이스
Rebase
다른 브랜치의 커밋을 적용하여 브랜치의 커밋 기록을 변경하는 프로세스입니다. merge
변경 사항을 결합하는 데 사용하는 대신 병합 커밋을 만들지 않고 현재 분기의 커밋 기록에 새 커밋을 rebase
허용합니다. insert
예를 들어 두 개의 분기가 있다고 가정해 보겠습니다. feature-branch
및 main
. 작업 중이며 feature-branch
최신 커밋을 main
현재 브랜치에 적용하려고 합니다. 이를 위해 rebase를 사용할 수 있습니다.
git checkout feature-branch
git rebase main
이 명령을 실행하면 Git이 커밋을 가져 main
와서 에 적용합니다 feature-branch
. 이는 의 모든 커밋이 의 feature-branch
커밋 다음에 나타남을 의미합니다 main
. 그 결과 커밋 히스토리가 feature-branch
.
그러나 리베이스를 사용할 때 변경된 커밋 기록이 공개적으로 공유된 브랜치에 영향을 미칠 수 있다는 점에 유의해야 합니다. 따라서 현재 분기에서 원격 저장소로 커밋을 이미 푸시한 경우 일반적으로 해당 분기에서 rebase를 사용하지 않는 것이 충돌 및 지저분한 커밋 기록을 방지하는 것이 좋습니다.
Branch
스위칭
Git에서 분기 전환이란 한 분기에서 다른 분기로 이동하는 과정을 말합니다. 분기를 전환하면 Git은 HEAD 포인터를 새 분기로 이동하여 해당 분기에서 작업하고 다른 분기에 영향을 주지 않고 변경할 수 있습니다.
예를 들어 분기 feature-branch
와 main
. 로 전환하려면 feature-branch
다음 명령을 사용합니다.
git checkout feature-branch
분기를 전환한 후 작업 디렉터리에서 변경할 수 있습니다. 모든 commit
, add
및 checkout
명령은 현재 분기에 적용됩니다.
예를 들어 새 파일을 추가하고 에 커밋하면 feature-branch
해당 브랜치에만 커밋이 포함되고 main
영향을 받지 않습니다. 이를 통해 별도의 기능을 개발하거나 버그를 수정하거나 다른 버전의 코드에서 독립적으로 작업할 수 있습니다. 각 분기에서 개별적으로 작업해야 할 때마다 분기 간에 전환할 수 있습니다.