[TIL] Git 뿌수기와 무서운 경험

샤이니·2023년 3월 29일
0

learned.log

목록 보기
9/46

오늘의 나는 무엇을 잘했을까?

  1. git을 쓴지 4년 차.. 아직도 도저히 적응이 안되고 아직도 나에겐 미지의 공간이다😅 그것을 더 뼈저리게 느낀 오늘! 몰랐던 명령어도 많고, 기능도 많고, 생각보다 더더더 다양한 방식이 있어서 정말 놀랐다🥲

  2. 오늘 배웠던 명령어를 다 써먹을 수 있을지..! 프로젝트하다가 날려먹는 것은 아닐지 욕먹을까봐 무섭다 엉엉😓

  3. 알려주신 방법이 아닌 Fork 협업 방식을 사용해 Weekly Mission을 업로드 했다! 다른 팀원분들께도 공유하면서 다시 Git의 구조에 대해 익힐 수 있었다.

오늘의 나는 무엇을 배웠을까?

Git 백과사전

Git에서 reset 대신 revert를 써야하는 이유가 무엇일까?

git의 checkout과 reset을 차이점(with switch)

오늘의 나는 어떤 어려움이 있었을까?

  1. git 너무 어렵고 헷갈려..
    특히 rebase, revert, squash, merge, checkout... 그림으로 잘 이해하자!!

  2. 등골이 오싹한 경험!

    알려주신 방법이 아닌 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개가 생겼다..?

    • 아마도.. 4번 5번을 둘다 해서 PR이 2개 생긴듯 한데.. rebase가 잘 안된건가? 5번의 pr에서 upstream/main의 commit이 생겨서 당황을 하곤..

    7) eva-week1을 삭제하고 새로 생성한다..😂😂

    stash를 한 것을 까먹은채.. 덜덜.. 사실 너무 당황해서 이 순서가 맞았는지는 정확하지 않지만..? 왜 PR이 2개가 생겼는지는 명확히 추측할 순 없지만 이것만은 확실하다!!

    😂절대 stash를 하고 까먹지 말 것.. 브랜치 삭제는 고민고민고민끝에 할 것...😂

  1. LR, CRLF 오류?!
    netlify에 배포해둔 파일을 다운 받고 git에 업로드를 하는 과정에서 warning이 떴다. (정확히는 git add를 하니..)
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)

    • Mac, Linux (Unix 계열) 줄바꿈 문자열 = \n
  • CRLF(Carriage-Return+Line-Feed)

    • Windows, DOS 줄바꿈 문자열 = \r\n
    • CR(\r) + LR(\n) 두 동작을 합쳐서 (\r\n)

즉 줄바꿈 문자가 git이 다룰 때 LF에서 CR로 바뀐다는 말이다!

아마도 배포되는 과정에서 줄바꿈 문자가 Linux가 쓰는 LF로 바뀌었고, git에서 인식할 때 CRLF로 인식하겠다는 말인 것 같았다.

그래서! core.autocrlf true 명령어로 이것을 허용하겠다는 말!

기본 설정은 OS(플랫폼)에 상관없이 줄바꿈에 대한 문자열 그대로 인식해서 저장해 문제 발생 가능성이 존재하는데, 이 명령어를 사용하면 커밋할 때 CRLF를 LF로 자동 변환하고, 체크아웃 할 때에는 반대로 LF를 CRLF로 변환하여 리턴해준다. 따라서 윈도우에서만 사용해야한다

내일의 나는 무엇을 해야할까?

  • 데이터 in js 완강
  • git 복습
  • Weekly Mission 찍먹
  • main rebase 다시 시도!!

0개의 댓글