Git : 푸시 후 커밋 된 파일 제거
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
정말로, 앞서 언급 한 선호하는 방법을 사용해보십시오.
하나의 파일 만 지정된 개정으로 되돌릴 수 있습니다.
먼저 파일이 변경된 커밋을 확인할 수 있습니다.
git log path/to/file.txt
그런 다음 개정 번호로 파일을 체크 아웃 할 수 있습니다.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
그 후에 커밋하고 다시 푸시 할 수 있습니다.
원격 저장소에서 파일을 제거하려면 먼저 --cache 옵션을 사용하여 프로젝트에서 파일을 제거한 다음 푸시합니다.
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(이것은 파일이 일부 커밋 전에 원격 저장소에 추가 된 경우에도 작동합니다.) 푸시하지 않으려는 파일 확장자를 .gitignore에 추가해야합니다.
파일을 올바른 상태로 재설정하고 커밋 한 다음 다시 푸시하십시오.
다른 사람이 아직 변경 사항을 가져 오지 않았다고 확신하는 --amend
경우 커밋 할 때 사용 하여 이전 커밋을 수정 (예 : 기록 다시 쓰기) 한 다음 푸시 할 수 있습니다. 나는 당신이 -f
밀 때, 밀기를 강요 하기 위해 옵션 을 사용해야한다고 생각합니다 .
마지막 커밋의 해시 코드를 가져옵니다.
git log
- 커밋 되돌리기
git revert <hash_code_from_git_log>
- 변경 사항 푸시
git push
GHR에서 확인하십시오. 필요한 것을 얻을 수 있습니다. 유용하기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/18357511/git-remove-committed-file-after-push
'program tip' 카테고리의 다른 글
JavaScript를 사용하여 한 번에 요소의 여러 속성 설정 (0) | 2020.11.17 |
---|---|
동일한 값을 가진 행 수 계산 (0) | 2020.11.17 |
Java 7 경로의 확장을 확인하는 방법 (0) | 2020.11.17 |
Spring : Map 또는 Properties 객체로 모든 환경 속성에 액세스 (0) | 2020.11.17 |
PowerPivot, PowerQuery 및 PowerBI의 차이점 (0) | 2020.11.17 |