Git : 푸시 후 커밋 된 파일 제거 후 푸시하고 싶지 않은 파일이 있다는

Git에서 커밋 된 파일을 되돌릴 수 있습니까? GitHub에 커밋을 푸시 한 후 푸시하고 싶지 않은 파일이 있다는 것을 깨달았습니다 (변경 사항을 완료하지 않았습니다).



답변

업데이트 : 더 안전한 방법 추가

선호하는 방법 :

  1. 파일의 이전 (변경되지 않은) 상태를 확인하십시오. 이중 대시를 주목하십시오

    git checkout HEAD^ -- /path/to/file
    
  2. 그것을 커밋하십시오 :

    git commit -am "revert changes on this file, not finished with it yet"
    
  3. 힘이 필요하지 않습니다.

    git push
    
  4. 완료되지 않은 작업으로 돌아가서 다시 수행하십시오 (위쪽 화살표 3 번).

    git checkout HEAD^ -- /path/to/file
    

효과적으로 ‘커밋 해제’:

저장소 HEAD의 마지막 커밋을 수정하여 실수로 푸시 된 작업을 난독 화하면서 이미 해당 작업을 가져 왔을 수있는 동료와 충돌 할 가능성이 있으며, 회색 머리카락이 커지고 로컬 브랜치 헤드를 조정하는 데 많은 시간을 잃을 수 있습니다. 중앙에 :

마지막 커밋에서 파일 변경을 제거하려면 :

  1. 파일을 마지막 커밋 이전 상태로 되돌리려면 다음을 수행하십시오.

    git checkout HEAD^ /path/to/file
    
  2. 되 돌린 파일로 마지막 커밋을 업데이트하려면 다음을 수행하십시오.

    git commit --amend
    
  3. 업데이트 된 커밋을 저장소에 푸시하려면 다음을 수행하십시오.

    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밀 때, 밀기를 강요 하기 위해 옵션 을 사용해야한다고 생각합니다 .


답변

  1. 마지막 커밋의 해시 코드를 가져옵니다.

    • git log
  2. 커밋 되돌리기
    • git revert <hash_code_from_git_log>
  3. 변경 사항 푸시
    • git push

GHR에서 확인하십시오. 필요한 것을 얻을 수 있습니다. 유용하기를 바랍니다.