ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 깃...
    Web Dev/8. 메모 2020. 4. 28. 20:04
    728x90

    Git은 항상 쓰지만 항상 낯설다. 스타트업에서 근무하면서 귀동냥으로 주워듣는데, 내가 주로 쓰는것을 정리한 것은 아래와 같다.

     

    • git fetch + git rebase로 마스터는 원격 리포지토리와 같도록 관리해주고, 나만 작업한 브랜치는 푸쉬전에 rebase를 통해 마치 내가 추가한 기능들이 마스터의 최신 커밋이후에 작성된척 구라를 쳐준다.

    1) git fetch 때리면 원격에 있는거 다 갖구 온다.( 브랜치 명 지정하면 브랜치 특정해서 가져올수 있음)

    2) 근데 git log하면 fetch 해온거 안보인다 -> git fetch --all 하면 다 보여준다(origin/master 가 어딨는지 볼수있다)

    3) 로컬의 master헤드가 origin/master보다 뒤에 있을 것이다. 이때 리베이스를 해준다

    git rebase origin/master master : origin/master를 master의 새 베이스로 지정!

    그럼 무슨 포워드 어쩌구나오는데 잘된거다. 이제 git log만 해도 반영 다 보인다

     

    그리고나서 브랜치에 master브랜치를 기준으로 rebase하고 싶으면

    git rebase master 브랜치 이름

     

     

    • git pull을 그냥하면 merge 커밋이 생기는데, 마스터로 관리하는 사람말고는 걍 앵간하면 리베이스로 커밋을 이쁘게 하는것을 선호하신다(원래 이래야하는건지는 잘모르겠다)

     

    • git rebase로 커밋을 예쁘게 합치고 하는거 되게 좋다?

    git rebase -i HEAD~몇개

     

    이렇게 하면 커밋을 수정할 수 있는 창이 뜬다. 

     

     

    • git reset으로 커밋을 생각보다 취소할 일이 많다

    git reset HEAD~몇개 ( HEAD^)  -> 이렇게하면 커밋을 취소하는데 삭제하는건 아니다(삭제하는 옵션도 있던데 그렇게 극단적으로 살지 않기로했다.)

     

     

    • 원격에 rebase나 커밋 메시지 같은거 바꾸고 푸쉬할때는 -f옵션 줘야한다. 근데 진짜 나만 작업한 브랜치여야하는것 같다. 다른 사람거랑 섞이면 좆되는듯.

    이렇게 뭐 좀 바꾸고 다시 원격에 푸쉬할라하면 막 안된다 그런다. 그러면 진짜 -f옵션 딱 때려주면 군말없이 푸쉬된다. 근데 막 했다간 다른데랑 다 꼬일수도 있다. 눈치 봐가며 해야지

    댓글

Designed by Tistory.