git 브랜치에서 일하고 있었고 변경 사항을 커밋 할 준비가되었으므로 유용한 커밋 메시지로 커밋을했습니다. 그런 다음 유지해야 할 코드를 간결하게 변경했습니다. 나는 이제 가지를 바꾸고 싶지만 git은 나에게 준다.
오류 : “X”로 로컬 변경되었습니다. 분기를 전환 할 수 없습니다.
커밋하지 않고 지점을 변경할 수 있습니까? 그렇다면 어떻게 설정할 수 있습니까? 그렇지 않은 경우이 문제에서 어떻게 벗어날 수 있습니까? 커밋하지 않고 사소한 변경 사항을 무시하고 분기를 변경하고 싶습니다.
답변
분기를 변경하려면 깨끗한 상태가 필요합니다. 지점 점검은 ‘더러운 파일’에 영향을 미치지 않는 경우에만 허용됩니다 ( 찰스 베일리 가 주석에 언급 한 바와 같이 ).
그렇지 않으면 다음 중 하나를 수행해야합니다.
- 현재 변경 사항을 숨기 거나
reset --hard HEAD
(그러한 사소한 변경 사항을 잃어 버리지 않는다면)checkout -f
분기를 전환 할 때 색인 또는 작업 트리가 HEAD와 다른 경우에도 진행하십시오. 로컬 변경 사항을 버리는 데 사용됩니다.
또는 더 최근 :
- Git 2.23 (2019 년 8 월) 및 새로운 명령
git switch
:
git switch -f <branch-name>
(의-f
줄임말--force
,의 별칭--discard-changes
임)
색인 또는 작업 트리가 HEAD와 다른 경우에도 진행하십시오.
인덱스와 작업 트리가 모두 전환 대상과 일치하도록 복원됩니다.
이는 git switch -m <branch-name>
현재 분기와 작업 트리 내용 및 새 분기 사이에 3 방향 병합을 트리거하는와 다릅니다 . 진행중인 작업을 풀지 않습니다.
답변
변경 사항을 취소하려면
git checkout -- <file>
git checkout branch
변경 사항을 유지하려면
git stash save
git checkout branch
git stash pop
답변
글쎄, 그것은해야한다
git stash save
git checkout branch
// do something
git checkout oldbranch
git stash pop
답변
따르다,
$: git checkout -f
$: git checkout next_branch
답변
원격 브랜치를 병합했거나 로컬 커밋이 있고 원격 HEAD로 돌아가려면 다음을 수행해야합니다.
git reset --hard origin/HEAD
HEAD
단독으로 로컬 커밋 / 병합 만 참조합니다. 다시 설정을 변경하고 “저장소가 X 커밋을 앞두고 있습니다.” .
답변
분기를 전환 할 때 Git도 변경 해야하는 파일을 변경했다면 허용하지 않습니다. 작업 변경 사항을 삭제하려면 다음을 사용하십시오.
git reset --hard HEAD
그런 다음 분기를 전환 할 수 있습니다.
답변
재설정 및 숨김 후에도 추적되지 않은 파일이 있었기 때문에 이러한 답변 중 어느 것도 도움이되지 않았습니다. 나는해야했다 :
git reset --hard HEAD
git clean -d -f