원격 저장소 헤드처럼 로컬 저장소 분기를 재설정하십시오.
질문
원격 저장소의 지점과 비슷하게 로컬 지점을 재설정하려면 어떻게합니까?
나는했다 :
git reset --hard HEAD
그러나 git 상태를 실행하면,
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: java/com/mycompany/TestContacts.java
modified: java/com/mycompany/TestParser.java
왜 이러한 '수정'이유를 알려주시겠습니까?나는이 파일을 만지지 않았습니까?내가 그랬다면, 나는 그것들을 제거하고 싶다.
답변
분기를 정확하게 일치하도록 지점 설정 원격 지점은 두 단계로 수행 할 수 있습니다.
git fetch origin
git reset --hard origin/master
현재의 지점의 상태를 저장하기 전에 현재 지점의 상태를 저장하려면 다음을 수행 할 수 있습니다.
git commit -a -m "Saving my work, just in case"
git branch my-saved-work
이제 작업이 원을 원한다면 (또는 업데이트 된 분기와의 나중에 또는 diff를보고 싶어하지 않으려 고) 할 때 결정을 내릴 경우 "My-Saved-Work"에 저장됩니다.
첫 번째 예제는 원격 Repo의 이름이 "원본"이고 원격 Repo의 "Master"라는 지점이 로컬 Repo의 현재 체크 아웃 된 지점과 일치하는 것으로 가정합니다.
BTW, 당신이 당신이없는 상황은 푸시가 현재 체크인되지 않은 저장소의 현재 체크 아웃 된 지점으로 수행 된 일반적인 경우와 같이 끔찍한 롯을 보입니다.최근에 당신의 지역 repo에 밀어 냈습니까?그렇지 않은 경우 걱정이 없으면 다른 것들은 이러한 파일이 예기치 않게 수정되게 끝납니다.그렇지 않으면, 현재가 아닌 리포지토리 (현재 체크 아웃 된 분기가 아닌)를 푸시하는 것이 좋습니다.
답변
나는 (수락 된 답변의 솔루션)해야했습니다.
git fetch origin
git reset --hard origin/master
다음은 다음과 같습니다.
git clean -f
로컬 파일을 제거합니다
어떤 파일을 제거 할 파일을 보려면 (실제로 제거하지 않고) :
git clean -n -f
답변
먼저 git 재설정을 사용하여 해당 업스트림 지점의 이전에 가져온 머리로 재설정하십시오.
git reset --hard @{u}
@ {u} 또는 verbose form @ {upstream}을 지정하는 장점은 원격 Repo 및 지점의 이름을 명시 적으로 지정할 필요가 없다는 것입니다.Windows 또는 PowerShell에서는 "@ {u}"(큰 따옴표 포함)을 지정하십시오.
다음으로 필요에 따라 Git Clean을 사용하여 선택적으로 untracked 파일을 선택적으로 제거하십시오.
git clean -df
마지막으로 필요에 따라 최신 변경 사항을 얻으십시오.
git pull
답변
Git Reset - Hard Head는 실제로 마지막으로 커밋 된 상태로만 재설정됩니다.이 경우 머리는 지점의 머리를 가리 킵니다.
몇 가지 커밋이있는 경우 이것은 작동하지 않습니다.
당신이하고 싶은 일은 원산지의 머리로 재설정되거나 원격 저장소가 호출됩니다.나는 아마 그냥 뭔가를 할거야
git reset --hard origin/HEAD
조심하십시오.하드 리셋은 쉽게 실행 취소 할 수 없습니다.DAN이 제안하는 것처럼하는 것이 좋으며 재설정 전에 변경 사항 사본을 분리합니다.
답변
위의 모든 것이 옳지 만, 종종 프로젝트를 실제로 재설정하는 데 자주 발생하면 .gitignore에있는 파일조차도 제거해야합니다.
프로젝트 디렉토리를 지우고 원격에서 다시 복제하는 것과 동일한 도덕적으로 해당하는 것을 얻으려면 다음과 같습니다.
git fetch
git reset --hard
git clean -x -d -f
경고 : Git Clean -x -d -f -f는 돌이킬 수 없으며 파일 및 데이터가 손실 될 수 있습니다 (예 : .gitignore를 사용하여 무시 한 것들).
답변
아래 명령을 사용하십시오.이 명령은 모든 untracked 파일을 로컬 git에서 제거합니다.
git fetch origin
git reset --hard origin/master
git clean -d -f
출처:https://stackoverflow.com/questions/1628088/reset-local-repository-branch-to-be-just-like-remote-repository-head
최근댓글