-
깃...Web Dev/8. 메모 2020. 4. 28. 20:04728x90
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옵션 딱 때려주면 군말없이 푸쉬된다. 근데 막 했다간 다른데랑 다 꼬일수도 있다. 눈치 봐가며 해야지
'Web Dev > 8. 메모' 카테고리의 다른 글
다른 레포지토리에 있는 커밋을 가져와야할때 (0) 2020.12.03 Pyinstaller, Tkinter와 thread를 사용하는 프로젝트 (0) 2020.07.12 윈도우에서 설치한 Pgadmin4에서 Ubuntu의 postgresql(10 버전)로 접속하기 (0) 2020.06.15 Visual Studio 코드로 원격 접속하기! (0) 2020.05.09 파이토치 환경 설정하기 (0) 2020.04.23