“git checkout -f”와“git reset --hard HEAD”의 차이점은 무엇입니까?
배포를 위해 로컬 변경 사항을 되돌려 야합니다. ( svn revert
오래된 skool SVN 시절에 이것을 사용 했습니다.)
그리고 git reset --hard HEAD
이것을 위해 사용 하고 있습니다. (또한 git fetch
과 git merge origin/$branch --no-ff
상류 지점에 대한 syncronizing).
그러나 일부 기사 git checkout -f
에서는 변경 사항을 되돌릴 수 있습니다.
이 명령의 주요 차이점은 무엇입니까? 어떤 방법이 권장됩니까?
둘은 똑같은 효과를 가지고 있습니다. 더 편한 솔루션을 선택하는 것이 좋습니다.
그러나이 특별한 경우에 효과가 같고 값이 다르면 완전히 다를 것입니다. 기본적으로 (더 많은 것이 있습니다, 링크 된 주제 참조) 재설정하면 현재 분기와 HEAD를 특정 커밋으로 이동하지만 체크 아웃하면 HEAD 만 이동합니다. 자세한 내용은 아래를 참조하십시오.
자원:
같은 주제에 대해 :
- git reset --hard HEAD와 git checkout 사이에 차이점이 있습니까?
- “git reset --hard hash”와“git checkout hash”사이에 차이점이 있습니까?
- 평범한 영어로 git reset을 설명해 주시겠습니까?
아직 다른 답변에 대해 언급 할 담당자가 없습니다. 두 명령이 동일한 효과가없는 경우를 발견했다고 덧붙이고 싶었습니다. 나는 이상한 상태에 빠졌으므로 이것은 확실히 엣지 케이스입니다. 다음은 일어난 일입니다.
나는 지점에 있었고 모든 것이 깨끗했습니다. 마스터를 체크 아웃 한 git checkout master
결과 git status
커밋을 위해 준비되지 않은 기존 파일에 변경 사항이 있음을 발견했습니다 (예, 방금 체크 아웃 한 코드에서). 깨끗한 상태로 돌아 가기 위해 은닉을 시도했지만 은닉은 완료되었다고 주장했지만 git status
여전히 변경되지 않았습니다. 또한 시도했습니다 git reset --hard HEAD
. 또한 성공적으로 완료되었다고보고했지만 상태는 다르지 않았습니다. 나는 이러한 이상한 변화를 중단 할 수 없었다.
그러나 git checkout -f
이것을 해결했습니다. 나는이 이상한 상태에서 벗어날 수 있었다. 따라서 적어도 어떤면에서이 둘은 동일하지 않습니다.
'Program Tip' 카테고리의 다른 글
REST를 통한 트랜잭션을 달성 할 수없는 경우 REST가 어떻게 정말로 유용 할 수 있습니까? (0) | 2020.11.02 |
---|---|
qmake 또는 Qt Creator없이 Qt를 사용할 수 있습니까? (0) | 2020.11.02 |
NuGet 스크립트를 다른 디렉터리로 (0) | 2020.11.02 |
gem이 실패하면 mkmf.log 파일은 어디에서 찾을 수 있습니까? (0) | 2020.11.02 |
중국어 간체 및 번체 vs 지역 (0) | 2020.11.02 |