커밋되지 않은 작업을 위한 새 브랜치 설정
새로운 기능을 개발할 때 변경 사항이 자체 분기에서 격리되어야 한다는 것을 깨닫는 것이 일반적입니다. 이를 통해 더 나은 조직과 병렬 개발이 가능해집니다. 새로운 기능에 대한 작업을 시작했고 도중에 해당 기능이 별도의 브랜치에 상주해야 한다고 결정한 경우 Git은 이러한 커밋되지 않은 변경 사항을 전송하는 간단한 방법을 제공합니다.
이 글에서는 커밋되지 않은 기존 작업을 새 브랜치로 이동하는 과정을 안내합니다. 또한 진행 상황을 잃지 않고 현재 분기를 재설정하는 방법을 배우게 됩니다. 이를 통해 작업 흐름이 깨끗하고 효율적으로 유지됩니다.
명령 | 설명 |
---|---|
git checkout -b <branch-name> | 새 분기를 만들고 해당 분기로 전환합니다. |
git add . | 작업 디렉터리에 커밋되지 않은 모든 변경 사항을 준비합니다. |
git commit -m "message" | 설명 메시지를 사용하여 단계적 변경 사항을 커밋합니다. |
git checkout - | 이전에 체크아웃된 분기로 다시 전환합니다. |
git reset --hard HEAD~1 | 현재 분기를 이전 커밋으로 재설정하고 변경 사항을 삭제합니다. |
#!/bin/bash | 스크립트가 bash 쉘에서 실행되어야 함을 지정합니다. |
커밋되지 않은 작업을 관리하기 위한 Git 워크플로 이해
첫 번째 스크립트 예에서는 일련의 Git 명령을 사용하여 커밋되지 않은 변경 사항을 새 분기로 수동으로 이동합니다. 프로세스는 다음과 같이 시작됩니다. git checkout -b new-feature-branch, "new-feature-branch"라는 새 분기를 생성하고 해당 분기로 전환합니다. 이는 새 기능의 작업을 기본 분기에서 분리하는 데 필수적입니다. 다음으로 커밋되지 않은 모든 변경 사항을 스테이징합니다. git add .. 이 명령은 수정된 모든 파일과 새 파일이 커밋을 위해 준비되었는지 확인합니다. 이에 따라, git commit -m "Move uncommitted work to new feature branch" 명령은 작업을 설명하는 메시지와 함께 이러한 변경 사항을 새 분기에 커밋합니다.
새 브랜치의 변경 사항을 확보한 후 다음을 사용하여 원래 브랜치로 돌아갑니다. 삼. 원래 분기를 이전 상태로 재설정하려면 다음을 사용합니다. git reset --hard HEAD~1. 이 명령은 이전 커밋으로 분기를 강제로 재설정하고 그 이후의 모든 변경 사항을 삭제합니다. 이 일련의 명령을 사용하면 원래 분기가 깨끗한 상태로 재설정되는 동안 새 기능에 대한 작업이 자체 분기에 유지됩니다.
셸 스크립트를 사용하여 프로세스 자동화
두 번째 스크립트 예제는 셸 스크립트를 사용하여 이 프로세스를 자동화합니다. 스크립트는 새 지점 이름이 제공되었는지 확인하는 것으로 시작됩니다. if [ -z "$1" ]; then, 이름이 지정되지 않으면 스크립트를 종료합니다. 변수 NEW_BRANCH=$1 제공된 분기 이름을 변수에 할당합니다. 그런 다음 스크립트는 다음을 사용하여 이 새 분기를 생성하고 전환합니다. git checkout -b $NEW_BRANCH. 커밋되지 않은 모든 변경 사항은 다음을 사용하여 준비됩니다. git add ., 그리고 커밋 git commit -m "Move uncommitted work to $NEW_BRANCH".
변경 사항을 커밋한 후 스크립트는 다음을 사용하여 이전 분기로 다시 전환합니다. git checkout -. 마지막 명령 git reset --hard HEAD~1 원래 브랜치를 이전 커밋으로 재설정하여 깨끗하고 새 브랜치로 이동된 변경 사항이 없는지 확인합니다. 이 셸 스크립트는 커밋되지 않은 작업을 새 브랜치로 이동하고 현재 브랜치를 재설정하는 프로세스를 자동화하는 편리한 방법을 제공하므로 Git에서 워크플로를 더 쉽게 관리할 수 있습니다.
커밋되지 않은 변경 사항을 Git의 새 분기로 이동
Git 명령줄 사용
# Step 1: Create a new branch and switch to it
git checkout -b new-feature-branch
# Step 2: Stage all uncommitted changes
git add .
# Step 3: Commit the staged changes
git commit -m "Move uncommitted work to new feature branch"
# Step 4: Switch back to the original branch
git checkout original-branch
# Step 5: Reset the original branch to the previous commit
git reset --hard HEAD~1
진행 상황을 유지하면서 작업을 새 지점으로 이전
자동화를 위해 쉘 스크립트 사용
#!/bin/bash
# Check if the user provided a branch name
if [ -z "$1" ]; then
echo "Usage: $0 <new-branch-name>"
exit 1
fi
NEW_BRANCH=$1
# Create and switch to the new branch
git checkout -b $NEW_BRANCH
# Stage all uncommitted changes
git add .
# Commit the changes
git commit -m "Move uncommitted work to $NEW_BRANCH"
# Switch back to the original branch
git checkout -
# Reset the original branch
git reset --hard HEAD~1
Git에서 기능 분기 생성 및 관리
Git으로 작업할 때, 특히 새로운 기능을 개발할 때 워크플로를 체계적으로 유지하는 것이 중요합니다. 한 가지 모범 사례는 기능 분기를 사용하는 것입니다. 기능 브랜치를 사용하면 기본 코드베이스와 독립적으로 새로운 기능을 작업할 수 있습니다. 이러한 격리는 완료되지 않았거나 불안정한 코드가 기본 분기에 영향을 미치는 것을 방지하는 데 도움이 됩니다. 기능 분기를 생성하려면 다음 명령을 사용하십시오. git checkout -b feature-branch. 이는 브랜치를 생성할 뿐만 아니라 사용자를 해당 브랜치로 전환하여 모든 새 작업이 올바른 컨텍스트에서 수행되도록 합니다.
기능 브랜치를 생성한 후에는 기본 브랜치에 영향을 주지 않고 새 기능을 작업할 수 있습니다. 이는 여러 개발자가 동시에 다양한 기능을 작업하는 공동 작업 환경에서 특히 유용합니다. 기능이 완성되고 철저하게 테스트되면 다음을 사용하여 기본 분기에 다시 병합할 수 있습니다. git merge feature-branch. 이런 방식으로 메인 브랜치에는 안정적이고 완전한 코드만 포함됩니다. 기본 분기의 최신 변경 사항으로 기능 분기를 업데이트해야 하는 경우 다음을 사용할 수 있습니다. git rebase main 기능 분기에 있는 동안 최신 상태인지 확인하세요.
Git 분기 관리에 대해 자주 묻는 질문
- 기능 분기란 무엇입니까?
- 기능 브랜치는 기본 코드베이스와 독립적으로 새로운 기능을 개발하기 위해 생성된 별도의 브랜치입니다.
- Git에서 새 브랜치를 어떻게 생성하나요?
- 다음을 사용하여 새 지점을 만들 수 있습니다. git checkout -b branch-name.
- Git에서 브랜치 간에 어떻게 전환하나요?
- 사용 git checkout branch-name 기존 지점으로 전환합니다.
- 기능 분기를 기본 분기에 다시 병합하려면 어떻게 해야 하나요?
- 기능 분기를 병합하려면 기본 분기로 전환하고 다음을 사용하세요. git merge feature-branch.
- 기본 분기의 최신 변경 사항으로 내 기능 분기를 어떻게 업데이트합니까?
- 기능 분기에 있는 동안 다음을 사용하세요. git rebase main 최신 변경 사항을 통합합니다.
- 병합 후 브랜치를 삭제하고 싶으면 어떻게 하나요?
- 다음을 사용하여 지점을 삭제할 수 있습니다. git branch -d branch-name.
- 내 저장소의 모든 브랜치를 어떻게 나열합니까?
- 사용 git branch 모든 지점을 나열합니다.
- Git에서 브랜치 이름을 바꿀 수 있나요?
- 네, 사용하세요 git branch -m old-name new-name 지점 이름을 바꾸려면.
- 현재 어느 지점에 있는지 어떻게 확인하나요?
- 사용 git status 또는 git branch 현재 지점을 보려면.
- 충돌이 있는 브랜치를 병합하려고 하면 어떻게 되나요?
- Git은 병합을 완료하기 전에 충돌을 해결하라는 메시지를 표시합니다. 사용 git status 충돌이 있는 파일을 확인하고 그에 따라 편집합니다.
마지막 생각들:
커밋되지 않은 작업을 Git의 새 브랜치로 이동하는 것은 체계적이고 깔끔한 개발 워크플로를 유지하는 데 유용한 기술입니다. 제공된 명령과 스크립트를 사용하면 기능에 대한 새 분기를 쉽게 생성하고, 변경 사항을 커밋하고, 현재 분기를 재설정할 수 있습니다. 이 접근 방식은 진행 상황을 보존할 뿐만 아니라 기본 분기를 안정적으로 유지하고 불완전한 기능이 없도록 유지합니다. 이러한 방식을 채택하면 생산성이 향상되고 팀 구성원 간의 협업이 더 원활해집니다.