Git 저장소를 특정 커밋으로 롤백(재설정)하려면 어떻게 해야 합니까?
Git 저장소를 복제한 다음 개발 프로세스 초기에 특정 커밋으로 롤백하려고 했습니다.그 시점 이후에 저장소에 추가된 모든 것은 나에게 중요하지 않기 때문에 나는 내 로컬 소스 코드에서 이후의 모든 변경 사항을 생략하고 싶습니다.
그러나 GUI 도구에서 롤백하려고 해도 로컬 파일 시스템이 업데이트되지 않습니다. 항상 프로젝트에 대한 최신 소스 코드가 표시됩니다.
프로젝트 기록의 특정 커밋 시점에 저장소에 대한 소스를 가져오고 이후 업데이트를 모두 생략하는 올바른 방법은 무엇입니까?
git reset --hard <tag/branch/commit id>
주의:
git reset
을 제외하고--hard
옵션은 커밋 기록을 재설정하지만 파일은 재설정하지 않습니다.와 함께--hard
옵션 작업 트리의 파일도 재설정됩니다.(사용자 정의)원격 저장소가 롤백 커밋을 가리키도록 해당 상태를 커밋하려면 다음을 수행합니다.
git push <reponame> -f
(사용자 정의)
업데이트:
추적 분기가 생성되고 푸시되는 방식이 변경되었기 때문에 더 이상 분기 이름을 변경하지 않는 것이 좋습니다.제가 지금 추천하는 것은 다음과 같습니다.
현재 상태에서 분기의 복사본을 만듭니다.
git branch crazyexperiment
(이 명령을 실행하면 현재 분기가 체크아웃된 상태로 유지됩니다.)
다음을 사용하여 현재 분기를 원하는 커밋으로 재설정합니다.
git reset --hard c2e7af2b51
(바꾸기c2e7af2b51
당신이 돌아가고 싶은 헌신으로.)
미친 실험 분기에 유용한 내용이 없다고 판단되면 다음을 사용하여 삭제할 수 있습니다.
git branch -D crazyexperiment
기록 수정 git 명령(재설정, 기본 재배치)으로 시작하여 백업 분기를 실행하기 전에 백업 분기를 생성하는 것이 좋습니다.결국 당신이 편안해지면 당신은 그것이 필요하지 않다는 것을 알게 될 것입니다.백업 분기를 만들지 않고 원하지 않는 방식으로 기록을 수정하는 경우 를 확인하십시오. Git는 분기나 태그가 없어도 상당한 시간 동안 커밋을 유지합니다.
원답:
이것을 하는 약간 덜 무서운 방법은.git reset --hard
메소드는 새 분기를 만드는 것입니다.당신이 전화를 받고 있다고 가정해 보겠습니다.master
은 지과당돌싶고약은속은가입니다.c2e7af2b51
.
현재 마스터 분기 이름 변경:
git branch -m crazyexperiment
당신의 좋은 약속을 확인해 보세요.
git checkout c2e7af2b51
여기에 새 마스터 분기를 만듭니다.
git checkout -b master
나중에 보고 싶다면 아직도 미친 실험이 남아 있지만, 마스터 브랜치는 마지막으로 알려진 좋은 지점으로 돌아와 추가할 준비가 되어 있습니다.실험을 포기하려면 다음을 사용할 수 있습니다.
git branch -D crazyexperiment
기트 가이드가 있는 사람은 기트를 사용할 수도 있습니다.
돌아갈 커밋을 마우스 오른쪽 단추로 누르고 "마스터 분기를 여기로 재설정"을 선택합니다.그럼 다음 메뉴에서 열심히 고르세요.
'GUI 툴'이라고 하면 Git For Windows를 사용하는 것 같습니다.
중요: 이 작업을 수행하기 위해 새 지점을 생성하는 것이 좋습니다.이렇게 하면 변경사항을 테스트하는 동안 마스터가 그대로 유지될 수 있습니다.
GUI를 사용하면 보기 오른쪽에 기록이 있는 것처럼 '이 커밋을 롤백'해야 합니다.그러면 왼쪽에서 커밋할 변경 사항으로 원하지 않는 파일이 모두 있다는 것을 알 수 있습니다.이제 커밋되지 않은 모든 파일 위의 회색 제목을 마우스 오른쪽 버튼으로 클릭하고 '변경 사항 무시'를 선택해야 합니다.이렇게 하면 파일이 이 버전의 파일로 되돌아갑니다.
언급URL : https://stackoverflow.com/questions/1616957/how-do-you-roll-back-reset-a-git-repository-to-a-particular-commit
'programing' 카테고리의 다른 글
WPF: App.xaml의 목적은 무엇입니까? (0) | 2023.05.03 |
---|---|
Egit 거부됨 비고속 전달 (0) | 2023.05.03 |
메뉴 항목 바로 가기 정의 (0) | 2023.05.03 |
Postgresql 9.2pg_dump 버전 불일치 (0) | 2023.05.03 |
python pip - local dir에서 설치 (0) | 2023.05.03 |