자식 : 분기를 전환하고 커밋하지 않고 변경 사항을 무시하십시오. 코드를 간결하게 변경했습니다. 나는

git 브랜치에서 일하고 있었고 변경 사항을 커밋 할 준비가되었으므로 유용한 커밋 메시지로 커밋을했습니다. 그런 다음 유지해야 할 코드를 간결하게 변경했습니다. 나는 이제 가지를 바꾸고 싶지만 git은 나에게 준다.

오류 : “X”로 로컬 변경되었습니다. 분기를 전환 할 수 없습니다.

커밋하지 않고 지점을 변경할 수 있습니까? 그렇다면 어떻게 설정할 수 있습니까? 그렇지 않은 경우이 문제에서 어떻게 벗어날 수 있습니까? 커밋하지 않고 사소한 변경 사항을 무시하고 분기를 변경하고 싶습니다.



답변

분기를 변경하려면 깨끗한 상태가 필요합니다. 지점 점검은 ‘더러운 파일’에 영향을 미치지 않는 경우에만 허용됩니다 ( 찰스 베일리 가 주석에 언급 한 바와 같이 ).

그렇지 않으면 다음 중 하나를 수행해야합니다.

  • 현재 변경 사항을 숨기 거나
  • reset --hard HEAD (그러한 사소한 변경 사항을 잃어 버리지 않는다면)
  • checkout -f 분기를 전환 할 때 색인 또는 작업 트리가 HEAD와 다른 경우에도 진행하십시오. 로컬 변경 사항을 버리는 데 사용됩니다.

또는 더 최근 :

색인 또는 작업 트리가 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