Git에서 로컬 커밋을 버리는 방법? 무언가를 연구하고 있었고,

나는 무언가를 연구하고 있었고, 그 중 일부를 저지른 후에 완전히 망가 졌다고 결정했습니다. 그래서 나는 다음 순서를 시도했다 :

git reset --hard
git rebase origin
git fetch
git pull
git checkout

어느 시점에서 메시지를 받았습니다

Your branch is ahead of 'origin/master' by 2 commits.

로컬 디렉토리를 지우고 모든 것을 다시 다운로드하지 않고도 로컬 커밋 을 삭제하고 싶습니다. 어떻게하면 되나요?



답변

git reset --hard origin/master

origin/master어디에 originrepo 이름이 아닌 master지점의 이름 이 아닌 모든 커밋을 제거합니다 .


답변

옆으로, mipadi의 답변 (제대로 작동해야 함)을 제외하고는 다음을 수행해야합니다.

git branch -D master
git checkout master

또한 당신이하지 않고 원하는 것을 정확하게 수행 having to redownload everything합니다 (인용 문구). 로컬 리포지토리에 원격 리포지토리의 복사본이 포함되어 있기 때문입니다 (그리고 해당 복사본은 로컬 디렉터리와 동일하지 않으며 체크 아웃 한 분기와 동일하지도 않습니다).

지점을 지우는 것은 완벽하게 안전하며 지점을 재구성하는 것은 매우 빠르며 네트워크 트래픽이 없습니다. git은 기본적으로 로컬 리포지토리입니다. 심지어 원격 지사에도 로컬에 사본이 있습니다. git에게 특정 로컬 사본이 실제로 원격 브랜치임을 알려주는 메타 데이터가 약간 있습니다. git에서 모든 파일은 항상 하드 디스크에 있습니다.

master 이외의 지점이없는 경우 다음을 수행해야합니다.

git checkout -b 'temp'
git branch -D master
git checkout master
git branch -D temp


답변

내가하는 일은 HEAD로 열심히 재설정하려고합니다. 로컬 커밋이 모두 지워집니다.

git reset --hard HEAD^


답변

당신은 실행해야합니다

git fetch

모든 변경 사항을 얻으려면 “지점을 앞두고”라는 메시지가 나타나지 않습니다.


답변

리모컨이 동기화되지 않아 업데이트해야하는 경우를 보았습니다. reset --hard또는 branch -D작동하지 않는 경우 시도하십시오

git pull origin
git reset --hard


답변

나는해야했다 :

git checkout -b master

git가 존재하지 않는다고 말했듯이, 그것은

git -D master


답변