개발일기(branch 나누다 삽질) 230508

황에녹·2023년 5월 7일
0

개발일기

목록 보기
1/1

사건의 발달

페이지의 컴포넌트를 나누고,
본격적으로 branch를 나누어서 작업할 계획이었다.

내가 명령어를 잘 기억하고 있는지 확인하기 위해

git checkout -b newbranch

로 branch를 만들고 삭제해보려고 했다.

git checkout -d newbranch

음...무엇이 잘못된걸까..?
(에러 발생!! 이건 기회야🤩)

newbranch가 삭제되지 않고, 현재 branch가 이상한 걸로 바뀌어있다.

Try

main으로 이동하면 커밋이 2개 앞서있다고
push 해보라 해서 해보기도 하고...
merge하고 다시 push하고...
reset으로 저 나타나는 커밋도 지워보고...

'HEAD detached at refs/~'를 구글링해도
나와 같은 어려움을 겪는 사람을 찾지 못해
꽤나 많은 시간을 삽질한 것 같다.

해결 😅

git branch -d newbranch

결국 명령어를 잘못쓴거였다 ^0^

너무~현타와서 에러에 쓰지도 못하고
개발 일기에 소소하게 남긴다...

어쩐지 삭제와 생성이 둘다
checkout으로 이뤄지고, '-d', '-b'의 차이만 있다면
위험할 것 같다는 생각도 들었다.

이로써 branch 생성과 삭제의 명령어는 절대 잊어버리지 못할 것 같다.

추가로 삽질하며 얻은 것 😚

git 시간여행이란?
나름 삽질하며 git에 대해 공부하게 되었다.

위 사이트를 보면서 커밋에도 id가 있다는 것을 처음 알았다.

해서, branch를 실수로 삭제해도
커밋은 바로 사라지지 않기 때문에
해당 커밋의 id를 찾아서 코드를 부활시킬 수 있다.

# git reflog ( 커밋 목록 조회)

git reflog

위 명령어를 통해 커밋의 목록을 조회하고,
커밋의 id를 확인할 수 있다. 후에
reset 명령어로 해당 커밋으로 돌아갈 수 있다.

git gc (갈비지 컬렉션)

git 공식사이트/git gc

git gc

'git gc'는 레포지토리에 쓸데없이 남아있는 commit들을 정리해주고,
남은 파일을 압축해서 효율적으로 만들어준다.

refs라는 폴더까지 개념이 이어지는 것 같은데,
깊이있게 추후 다시 학습해보겠다.

profile
개발, 영화, 음악

0개의 댓글