Git에서 커밋 된 파일을 되돌릴 수 있습니까? GitHub에 커밋을 푸시 한 후 푸시하고 싶지 않은 파일이 있다는 것을 깨달았습니다 (변경 사항을 완료하지 않았습니다).
답변
업데이트 : 더 안전한 방법 추가
선호하는 방법 :
-
파일의 이전 (변경되지 않은) 상태를 확인하십시오. 이중 대시를 주목하십시오
git checkout HEAD^ -- /path/to/file
-
그것을 커밋하십시오 :
git commit -am "revert changes on this file, not finished with it yet"
-
힘이 필요하지 않습니다.
git push
-
완료되지 않은 작업으로 돌아가서 다시 수행하십시오 (위쪽 화살표 3 번).
git checkout HEAD^ -- /path/to/file
효과적으로 ‘커밋 해제’:
저장소 HEAD의 마지막 커밋을 수정하여 실수로 푸시 된 작업을 난독 화하면서 이미 해당 작업을 가져 왔을 수있는 동료와 충돌 할 가능성이 있으며, 회색 머리카락이 커지고 로컬 브랜치 헤드를 조정하는 데 많은 시간을 잃을 수 있습니다. 중앙에 :
마지막 커밋에서 파일 변경을 제거하려면 :
-
파일을 마지막 커밋 이전 상태로 되돌리려면 다음을 수행하십시오.
git checkout HEAD^ /path/to/file
-
되 돌린 파일로 마지막 커밋을 업데이트하려면 다음을 수행하십시오.
git commit --amend
-
업데이트 된 커밋을 저장소에 푸시하려면 다음을 수행하십시오.
git push -f
정말로, 앞서 언급 한 선호하는 방법을 사용해보십시오.
답변
원격 저장소에서 파일을 제거하려면 먼저 –cache 옵션을 사용하여 프로젝트에서 파일을 제거한 다음 푸시합니다.
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(이것은 파일이 일부 커밋 전에 원격 저장소에 추가 된 경우에도 작동합니다.) 푸시하지 않으려는 파일 확장명을 .gitignore에 추가해야합니다.
답변
하나의 파일 만 지정된 개정으로 되돌릴 수 있습니다.
먼저 파일이 변경된 커밋을 확인할 수 있습니다.
git log path/to/file.txt
그런 다음 개정 번호로 파일을 체크 아웃 할 수 있습니다.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
그 후에 커밋하고 다시 푸시 할 수 있습니다.
답변
파일을 올바른 상태로 재설정하고 커밋 한 다음 다시 푸시하십시오.
다른 사람이 아직 변경 사항을 가져 오지 않았다고 확신하는 --amend
경우 커밋 할 때 사용 하여 이전 커밋을 수정 (예 : 기록 다시 쓰기) 한 다음 푸시 할 수 있습니다. 나는 당신이 -f
밀 때, 밀기를 강요 하기 위해 옵션 을 사용해야한다고 생각합니다 .
답변
-
마지막 커밋의 해시 코드를 가져옵니다.
git log
- 커밋 되돌리기
git revert <hash_code_from_git_log>
- 변경 사항 푸시
git push
GHR에서 확인하십시오. 필요한 것을 얻을 수 있습니다. 유용하기를 바랍니다.