Git Push ๋ฌธ์
git commit ์ ์งํํ๊ณ ๋์ push ๋ฅผ ํ๋ ค๊ณ ํ๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ค์ git log ๋ฅผ ํ์ธํด๋ณด๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ฌ ๋ฉ์์ง๋ฅผ ํ์ธํ ์ ์์๋ค.
[info] error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date
HTTP 400 ์๋ฌ๋ Bad Request ์๋ฌ๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋ฒ์์ ์ฒ๋ฆฌํ ์ ์์ ๋ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์๊ณ ์๊ณ ์๋ฌด๋๋ ๋คํธ์ํฌ ๋ฌธ์ ์ด๊ฑฐ๋ ๋ด๊ฐ push ํ๋ ค๋ ํ์ผ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ ๊ทธ๋ฐ๊ฑด ์๋๊ฐ? ํ๋ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋์ ํด๋น ์๋ฌ ๋ฉ์์ง ๊ด๋ จํด์ ์๋ฌ๊ฐ ๋ฐ์ํ ์์ธ๊ณผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์๋ค.
๋ฌธ์ ์์ธ ํ์
์ฌ๋ฌ ์ฌ๋๋ค์ ๋ฌธ์ ๋ฅผ ํตํด ํ์ธํ ๋ฌธ์ ์ ์์ธ์ ๋ค์๊ณผ ๊ฐ์๋ค.
- push ๋ฐ์ดํฐ์ ํฌ๊ธฐ ๋ฌธ์
- ๋คํธ์ํฌ ๋ฌธ์
- Git ์๋ฒ ๋ฌธ์
- Git Repository ์ ๋ํ ๊ถํ ๋ฌธ์
๋๋ ์ฌ๋๋ค์ด ๋งํ ์์ธ๊ณผ ๊ด๋ จ์ด ์๋์ง ํ๋์ฉ ํ์ธํด๋ณด์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ ์ฐพ๊ธฐ
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํด๋ณด๋ผ๊ณ ํ๋ค.
- HTTP ๋ฒํผ ํฌ๊ธฐ ๋๋ฆฌ๊ธฐ
- ์์ ์ฌ์ด์ฆ๋ก ํธ์ํด๋ณด๊ธฐ
- ๋ชจ๋ ์๋ฒ ์ข ๋ฃํ๊ธฐ
- Git Repository ์ฐ๊ฒฐ ๋ค์ํ๊ธฐ
- Git Repository ๊ถํ ์ฐ๊ฒฐ ๋ค์ํ๊ธฐ
- Github ์ ๋ฌธ์ํ๊ธฐ
๋๋ ๋จผ์ push ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ฌธ์ ์ธ์ง ํ์ธํด๋ณด์๋ค.
๊ธฐ์กด์ push ํ๋ ค๊ณ ํ๋ commit ๋ด์ญ๋ค์ undo ํ๊ณ ๋์ ๊ฐ๋จํ๊ฒ ์์ ํ๊ณ ๋์ commit ํ๊ณ push ํด๋ณด์๋ค.
๊ฐ๋จํ ์์ ๋ด์ฉ๋ง push ํ๋ ์ ์์ ์ผ๋ก ๋๋ ๊ฒ์ ํ์ธํ๋ค.
HTTP ๋ฒํผ ๋๋ฆฌ๊ธฐ
๊ทธ๋์ ๋ค์ commit ํ๊ณ ๋์ push ํ๋ ๋์ผํ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ฒฐ๊ตญ์๋ ๋ฒํผ ํฌ๊ธฐ ๋ฌธ์ ์ธ๊ฑด๊ฐ ํ๋ ์๊ฐ์ ์ฐพ์ ๊ธ ์ค์์ http ๋ฒํผ๋ฅผ ๋๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ ํด๋ณด์๋ค.
์๋์ ๋ช
๋ น์ด๋ฅผ ํตํด ๋ฒํผ ์ฌ์ด์ฆ๋ฅผ 500MB
๋ก ๋๋ ค์ฃผ์๋ค.
git config http.postBuffer 524288000
๋ฐ๋๋ก ์ค์ ์ ์ง์ฐ๋ ค๋ฉด ์๋ ๋ช ๋ น์ผ๋ฅด ํตํด ์ ๊ฑฐํด์ค๋ค.
git config --global --unset http.postBuffer
๊ทธ๋ฆฌ๊ณ ๋ค์ ์๋ํ๋ ์ ์์ ์ผ๋ก push ๋๋ ๊ฒ์ ํ์ธํ๋ค!
๊ฒฐ๊ตญ ๋ด ๋ฌธ์ ๋ push ํ๋ ค๊ณ ํ๋ ๋ฐ์ดํฐ์ ์ฉ๋์ด ๋๋ฌด ์ปค์ push ๊ฐ ๋์ง ์์๋ ๊ฒ์ด์๋ค. ์๋ง ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ด ์ฌ๋ ค์ ๊ทธ๋ ๊ฒ ๊ฐ์๋ฐ.. ์ ๋ฒ์๋ ์ ์ ์์ ์ผ๋ก push ๊ฐ ๋์๋์ง ์ ๋ชจ๋ฅด๊ฒ๋ค.
์ดํ ์ฐพ์ ๋ด์ฉ์ธ๋ฐ ํน์ git object ์บ์๋ฅผ ์ ๋ฆฌํ๊ณ ๋์ ์๋ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
git gc --prune=now
์ผ๋จ์ ํด๊ฒฐ๋์์ง๋ง ์ปค๋ฐ ๋ฐ์ดํฐ์ ์ฉ๋์ด ์ผ๋ง๋ ๋์๊ธธ๋ ์๋์๋์ง ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ํ์ธํด๋ณด์๋ค.
๋จผ์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ์ต๊ทผ commit ๋ด์ญ์ ํตํด commit hash ๊ฐ์ ์์๋ธ๋ค.
git log --oneline
๊ทธ๋ฆฌ๊ณ ์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด ์ปค๋ฐ ๋ด์ญ์ ํ์ธํ ์ ์๋ค.
git cat-file -p <commit-hash>
๊ทธ๋ผ ์๋์ ๊ฐ์ด ์ปค๋ฐ ํธ๋ฆฌ๋ฅผ ํ์ธํ ์ ์๋ค.
$ git cat-file -p 15a210b
tree 564b23648ae9e4f50d12a5b58c9d7d1874b3e396
parent a7fdc8c018d026dffa15648ce89bb46951a1bc68
(...)
์ด์ ์๋์ ๋ช ๋ น์ด๋ก
git cat-file -s <tree-hash>
๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด 622 ๋ฐ์ดํธ๊ฐ ๋์ค๋๋ฐ ์๊ฐ๋ณด๋ค ํฌ์ง ์์์ ๋ญ๊ฐ ์ถ์๋ค...
$ git cat-file -s 564b23648ae9e4f50d12a5b58c9d7d1874b3e396
622
์ด์ ์ ๋ฆฌ
์ ๋ฆฌํด๋ณด๋ฉด Git repository ์ commit ํ ๋ด์ฉ์ push ํ๋ ๋์ค์ push ๊ฐ ์ ์์ ์ผ๋ก ๋์ง ์๋ ์ด์๊ฐ ๋ฐ์ํ๋ค.
์ด ์ด์์ ๋ํด์ ์ฐพ์๋ณด๋ ์ฌ๋ฌ๊ฐ์ง ์์ธ์ ์ฐพ์ ์ ์์๊ณ ๋ ๊ฐ์ ๊ฒฝ์ฐ push ํ๋ ค๊ณ ํ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ ๋ฐ์ํ ๋ฌธ์ ์๋ค.
์๋ง push ํ๋ ค๊ณ ํ๋ ๋ฐ์ดํฐ์ ์ด๋ฏธ์ง๊ฐ ๋ง์์ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๊ทธ๋์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋๋ git http buffer ๋ฅผ ๋๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ ํตํด ์ด์๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.
git config http.postBuffer 524288000
๊ทธ ๋ฐ์๋ ์ ๋ง ๋ค์ํ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋ง๊ฒ ์ด์๋ฅผ ํด๊ฒฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ฐธ๊ณ
https://stackoverflow.com/questions/77856025/git-error-rpc-failed-http-400-curl-22-the-requested-url-returned-error-400-se
https://stackoverflow.com/questions/62753648/rpc-failed-http-400-curl-22-the-requested-url-returned-error-400-bad-request
https://toypanda.tistory.com/222
https://onlydev.tistory.com/130
https://g1-kim.tistory.com/entry/git-push-400-%EC%97%90%EB%9F%AC-%EB%B0%9C%EC%83%9D-%EC%8B%9C-ssh-%EB%A1%9C-%EC%97%B0%EA%B2%B0-%ED%95%B4%EA%B2%B0%EB%B0%A9%EC%95%88
https://hyeonstone.tistory.com/entry/Git-%EC%98%A4%EB%A5%98-The-requested-URL-returned-error-400-%EC%98%A4%EB%A5%98