분기에 대한 모든 변경 사항을 취소하는 방법은 무엇입니까? :)에서 작업 중이며 design여러 가지 변경 사항을

브랜치 (예 :)에서 작업 중이며 design여러 가지 변경 사항을 적용했지만 모두 삭제하고 리포지토리 버전과 일치하도록 재설정해야합니다. 나는 git checkout design그것을 할 것이라고 생각 했지만 나는 이미 분기에 design있고 3 개의 수정 된 파일이 있음을 알려줍니다 .

이러한 변경 사항을 삭제하고 현재 원격 서버에있는 분기를 가져 오려면 어떻게해야합니까?



답변

참고 :이 작업은 취소수 없습니다 .

git checkout -f이것을 시도 하면 모든 브랜치와 마스터 에서 커밋 되지 않은 로컬 변경 사항이 삭제됩니다 .


답변

git reset –hard 는 마지막 커밋 이후 모든 것을 버리고 싶다면 도움이 될 수 있습니다.


답변

git diff master > branch.diff
git apply --reverse branch.diff

답변

변경 사항을 원하지 않고design 리모트의 브랜치와 정확히 일치하기를 원한다면 브랜치를 삭제하고 다시 생성 할 수도 있습니다.

# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design            # Will set up design to track origin's design branch

답변

@Will, git immersion 은 정말 멋지고 간단한 git 튜토리얼입니다. 다음과 같은 경우 변경 사항을 실행 취소하는 방법을 보여줍니다. 실습 14-18


답변

로컬 브랜치의 변경 사항을 삭제하려면 git stash 명령을 사용하여 이러한 변경 사항을 숨길 수 있습니다.

git stash save “some_name”

변경 사항이 저장되고 나중에 원할 경우 검색하거나 삭제할 수 있습니다. 이렇게하면 브랜치에 커밋되지 않은 코드가 없으며 git pull을 사용하여 메인 브랜치에서 최신 코드를 가져올 수 있습니다.


답변

소스 루트에서 :

git reset ./ HEAD <--un-stage any staged changes
git checkout ./ <--discard any unstaged changes