/ Moving changes from one branch to another in Gi

Moving changes from one branch to another in Gi

2024. 12. 12. 오전 3:15:15
Git에서 변경 사항을 이동하거나 수정하는 방법에 대해 설명합니다. 변경을 이동하려면 "git checkout" 명령어를 사용하여 브랜치를 전환하고, 이미 커밋한 실수를 수정하려면 소프트 리셋을 사용합니다. 또한, 새로운 브랜치를 만들고 분기된 기록을 병합하거나, git stash를 사용하여 나중에 변경 사항을 저장하고 재적용할 수 있습니다. 이미 커밋한 실수를 수정하려면 소프트 리셋을 사용하여 "아직 커밋하지 않았다면" 상태로 돌아갈 수 있습니다.
Moving changes from one branch to another in Gi
빠른 링크 이동 변경(아직 커밋하지 않았다면) 이동 커밋(이미 커밋했다면) 요약 Git은 브랜치를 사용하여 변경을 관리하지만, 잘못된 커밋은 문제가 발생할 수 있습니다. 변경을 이동하려면 "git checkout " 명령어를 사용하여 브랜치를 전환합니다. 이미 커밋한 실수를 수정하려면, 아직 커밋되지 않은 상태로 전환하기 위해 소프트 리셋을 사용합니다. 적절한 명령어 없이는 잘못된 브랜치에 변경 사항이 발생하여 해결하기 어려운 문제가 발생할 수 있습니다. Git은 당신의 일일 변경 사항을 추적하지만, 브랜치와 같은 시스템을 통해 당신이 변경 사항을 조직할 수 있습니다. 그러나 신경 쓰지 않으면, 잘못된 브랜치에 변경 사항이 발생하여 리모트 소스 컨트롤로 푸시되기 전까지는 해결하기 어려운 문제가 발생할 수 있습니다.

이동 변경(아직 커밋하지 않았다면)

Git은 당신의 전체 폴더를 관리하지만, 파일에 대한 변경 사항은 커밋할 때까지 특정 Git 브랜치에 묶이지 않습니다. 브랜치를 이동하고, 그 변경 사항을 함께 가져올 수 있습니다.

가장 간단한 옵션은 단순히 브랜치를 전환하는 것입니다. 그러나 두 개의 대상 브랜치가 일치하는 기록을 가진다면 이 작업이만 가능합니다:

git checkout feature

이 문제를 해결하는 몇 가지 방법이 있습니다. 첫 번째는 새로운 브랜치를 만들고, 분기된 기록을 병합하는 것입니다:

git checkout -b tempfeaturegit checkout featuregit merge tempfeature

또는 git stash를 사용하여 나중에 변경 사항을 저장하고 새로운 브랜치에서 재적용할 수 있습니다:

git stashgit switch featuregit stash apply

이동 커밋(이미 커밋했다면)

이미 커밋했다면 걱정할 필요가 없습니다. 커밋은 리모트 소스 컨트롤로 푸시되기 전까지는 최종 상태가 아닙니다. 이미 했다면 문제를 수정할 수 있지만, 실수의 기록은 당신의 Git 기록에 남아 있으므로, 동료가 보기 전에 로컬에서 해결하는 것이 가장 좋습니다.

커밋을 되돌리려면 단순히 소프트 리셋을 사용할 수 있습니다. 일반적으로 마지막 커밋을 되돌리는 것이지만, 커밋 ID에 대한 참조를 전달할 수도 있습니다:

git reset HEAD~1

이렇게 하면 "아직 커밋하지 않았다면" 상태로 남아 있고, 그 후에 위의 방법을 사용하여 문제를 해결할 수 있습니다.

또는 git cherry-pick을 사용할 수 있습니다. 이 명령어는 한 브랜치의 커밋을 다른 브랜치로 복사하고, 깨끗한 방식으로 커밋을 선택하고 새로운 브랜치로 이동하는 좋은 방법입니다.

git log를 실행하여 원하는 커밋의 ID를 찾습니다:

git log

그런 다음 변경 사항이 커밋된 상태로 가정하고 기능 브랜치로 전환한 후 cherry-pick을 실행합니다:

git switch featuregit cherry-pick

그 후에는 메인 브랜치에 중복된 커밋이 남아 있을 것입니다. 기능 브랜치가 올바르게 정렬되어 있다면 이 커밋을 리셋하고 변경 사항을 버리거나, 병합할 때 Git이 정리하도록 유지할 수 있습니다.

Git을 더 잘 사용하려면 항상 어떤 브랜치에 있는지 알 수 있는 방법에 대해 읽거나 기본적인 Git 명령어를 알고 있는지 확인할 수 있습니다.