실수로 log/test.log를 커밋했지만 결코 밀어 넣지 않았습니다. 나는 그걸 제거하기 위해 그때 이후로 힘쓴 일을했다. 그러나 밀어 넣으려고 할 때 나는 아직도 많은 양의 데이터를 전송하려고하고있다. git rm이 그 문제를 수정해서는 안됩니다. 그렇지 않다면 어떻게 해결할 수 있습니까?대용량 파일을 제거한 후 git push
답변
거대한 파일이 기록에서 계속 옮겨 지므로 커밋을 취소 한 다음 밀어 넣지 마십시오.
당신이 아직 추진되지 않았는지 그리고 당신이, 즉 당신의 역사에서 커밋 가장 최근에 제거되어 다시 할 커밋을 감안할 때 : 이것은의 상태로 인덱스를 반환합니다
$ git reset HEAD^
부모 커밋 (HEAD^
)에서. 이제는 멀리건 (mulligan)이 있습니다. 처음으로 의미했던 방식을 추가하고 저지하십시오.
다른 후속 커밋을 작성한 경우 git rebase -i <commit>
이 필요합니다. 여기서 <commit>
은 나쁜 커밋의 상위의 SHA-1입니다.
(및 SHA-1이 당신의 repo에서 다를 수 있습니다)
$ git rebase -i 57d0b28
가있는 라인에 edit
와 pick
교체
pick 366eca1 This has a huge file pick d975b30 delete foo pick 121802a delete bar # Rebase 57d0b28..121802a onto 57d0b28 # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. #
유사한 편집기에서 당신을 떨어질 것 무거운 커밋
edit 366eca1 This has a huge file pick d975b30 delete foo pick 121802a delete bar
저장 및 종료 편집기는
$ git rm --cached big-nasty-file rm 'big-nasty-file'
수정 (--cached
는 인덱스에서 파일을 제거), 양식 거기에서
Stopped at 366eca1... This has a huge file You can amend the commit now, with git commit --amend Once you are satisfied with your changes, run git rebase --continue
의 메시지가 나타납니다 쉘에 반환 잘못된 파일을 삭제하기
$ git commit --amend
을 커밋하고 REBASE
를 완료 10푸시하지 않은 경우 git rebase -i
을 사용하여 커밋 내역을 편집하여 add
및 rm
을 제거 할 수 있습니다. 주의해야 할 점은 이미 푸시 된 커밋을 편집하지 않도록주의해야한다는 것입니다.
http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive
당신이 한 다음 커밋 및 기타 커밋의 다른 변경 사항이있는 경우 당신은 여전히이 작업을 수행 할 수 있는지 여부를 물었다. 그것은 달려있다. 최신이 아닌 커밋되지 않은 커밋을 편집/제거 할 수 있어야합니다. 그러나 나중에 변경된 사항이 삭제 된 커밋의 변경에 크게 의존 할 경우 (예 : 파일을 추가 한 다음 나중에 커밋 할 때 편집 한 경우) rebase가 실패 할 수 있습니다. ? L 트를 h 제하면 해당? 미트의 모든 변경 사항이 유실됩니다. 나는 커밋에서 하나의 변경을 제거하는 방법을 모른다. test.rb 커밋에서 다른 변경 사항을 잃지 않으려면 커밋을 삭제하기 전에 패치 (git show <commitid> > /tmp/patch
또는 내장 된
git patch
기능 포함)를 생성 할 수 있습니다. 그런 다음 패치 파일을 편집하여 큰 test.rb 파일을 제거하고 원하는대로 변경 한 다음 패치를 헤드에 다시 적용하십시오.
rebase가 실패한 곳에서 언급 한 문제가 있거나 문제가 있다고 생각되면 문제가 커밋 된 후 에 대한 패치를 저장하고 모두 삭제 한 다음 순서대로 다시 적용 할 수 있습니다.
비록 내가 밀어 넣지는 않았지만, 이후로 여러 차례 커밋을했습니다. 리베이스는 여전히 옵션입니까? (우발적 인 log/test.rb 커밋에는 파일 수가 많았습니다.) – Daniel
- 1. git push?
- 2. git push 후 프로젝트가 gitweb에서 사라진다
- 3. Git Push Issues
- 4. git push .git/description 파일
- 5. 클래스 파일을 제거한 후 java에서 ClassNotFoundException이 발생합니다.
- 6. git push 명령 확인
- 7. pre-push git hook?
- 8. Git Push Questions - Pedantic
- 9. GIT에서 디렉터리를 제거한 후 커밋하는 방법
- 10. git push/pull - 기본값은 github
- 11. git push fatal : Git 저장소가 아닙니다 : '.'
- 12. git push -f의/반대와 유사한 git pull?
- 13. HashSet에서 제거한 후 제거하십시오.
- 14. 제거한 후 명령 실행
- 15. 계속 중단 된 git-push (업로드 재개)
- 16. Git push from post-receive
- 17. git push -u는 무엇을 의미합니까?
- 18. 성공적으로 제거한 후 롤백이 발생합니다.
- 19. git 커밋에서 svn으로 푸시 (push)하기 위해 파일을 제거하는 방법
- 20. Git Push Server가 작업 분기를 업데이트하지 않습니다.
- 21. 프록시 뒤의 git push remote 문제
- 22. 외부 js 파일을 제거한 후 어떤 일이 발생합니까?
- 23. 왜 "git push helloworld"대신에 "git push helloworld + master : master"가 필요한가요?
- 24. ftp 다운로드 후 git reset
- 25. "git remote add ..."와 "git push origin master"란 무엇입니까?
- 26. git push --mirror는 git-svn과 함께 사용되는 저장소의 백업으로 충분합니까?
- 27. "git push"는 리모컨에서 "git fetch"와 동일하게 수행합니다.
- 28. ReSharper를 제거한 후 코드 분석이 작동하지 않습니다.
- 29. 제한된 ssh를 통해 Git push to server
- 30. git push, 숨겨진 소스 코드는 어디에 있습니까?
커밋에 대한 SHA1 주소를 어떻게 얻습니까? – Daniel
@Daniel 예를 들어'git log' 또는'gitk'를 실행하십시오. –