git을 쓴지 4년 차.. 아직도 도저히 적응이 안되고 아직도 나에겐 미지의 공간이다😅 그것을 더 뼈저리게 느낀 오늘! 몰랐던 명령어도 많고, 기능도 많고, 생각보다 더더더 다양한 방식이 있어서 정말 놀랐다🥲
오늘 배웠던 명령어를 다 써먹을 수 있을지..! 프로젝트하다가 날려먹는 것은 아닐지 욕먹을까봐 무섭다 엉엉😓
알려주신 방법이 아닌 Fork 협업 방식을 사용해 Weekly Mission을 업로드 했다! 다른 팀원분들께도 공유하면서 다시 Git의 구조에 대해 익힐 수 있었다.
checkout
과 reset
을 차이점(with switch)git 너무 어렵고 헷갈려..
특히 rebase, revert, squash, merge, checkout... 그림으로 잘 이해하자!!
등골이 오싹한 경험!
알려주신 방법이 아닌 fork 방법으로 git을 사용하다가 어버버..
upstream main이 수정되어 origin main에 pull받고 eva branch에 rebase를 해야하는 일이 생겨 혼자 시도하다가 꼬였다.
branch구조
upstream/main
└─ upstream/eva
origin/main
└─ origin/eva
└─ origin/eva-week1
문제 경위는 다음과 같다.
1) eva-week1 branch에서 하던 작업을 stash 했다.
2) origin/main에서 pull을 받았다.
3) origin/eva로 이동해 rebase를 진행했다.
4) eva-week1으로 이동해 내용을 origin/eva branch에 push했다.
5) origin/eva에서 upstream/eva로 push진행했다.
6) PR이 2개가 생겼다..?
7) eva-week1을 삭제하고 새로 생성한다..😂😂
stash를 한 것을 까먹은채.. 덜덜.. 사실 너무 당황해서 이 순서가 맞았는지는 정확하지 않지만..? 왜 PR이 2개가 생겼는지는 명확히 추측할 순 없지만 이것만은 확실하다!!
😂절대 stash를 하고 까먹지 말 것.. 브랜치 삭제는 고민고민고민끝에 할 것...😂
warning: in the working copy of '파일', LF will be replaced by CRLF the next time Git touches it
// 경고 : '파일'의 작업 복사본에서 LF는 다음에 Git이 터치할 때 CRLF로 대체됩니다.
여러 블로그를 전전한 결과 git config --global core.autocrlf true
를 해서 해결!
그래서 이게 뭔데..?
LF(Line-Feed)
CRLF(Carriage-Return+Line-Feed)
즉 줄바꿈 문자가 git이 다룰 때 LF에서 CR로 바뀐다는 말이다!
아마도 배포되는 과정에서 줄바꿈 문자가 Linux가 쓰는 LF로 바뀌었고, git에서 인식할 때 CRLF로 인식하겠다는 말인 것 같았다.
그래서! core.autocrlf true 명령어로 이것을 허용하겠다는 말!
기본 설정은 OS(플랫폼)에 상관없이 줄바꿈에 대한 문자열 그대로 인식해서 저장해 문제 발생 가능성이 존재하는데, 이 명령어를 사용하면 커밋할 때 CRLF를 LF로 자동 변환하고, 체크아웃 할 때에는 반대로 LF를 CRLF로 변환하여 리턴해준다. 따라서 윈도우에서만 사용해야한다