병합하기 전에 분기를 만드세요.
Cover Image: Puppy Bath Time! by pixel artist Andrea Zevallos -
드디어! 내 지형지물을 검토할 준비가 되었습니다. 이제 PR을 열겠습니다…
다음 질문을 숙고하십시오. 귀하의 지점은 어떻게 생겼습니까?
$> git log --pretty=format:'%h - %s' main..feature/drag-n-drop-grid
f6dec33 - chore: revert tsconfig
ee409e7 - revert DragDropWrapper (recover prev. code)
7dfcee2 - fix ci 6a84dd7 - testing
d14ffee - new component <DragDropGridWrapper />
914cca3 - wip
8796b3e - feat: replace internal library for <DragDropWrapper />
f6ad24c - chore: review .eslint + tsconfig
7da219e - new dependency 'react-draggable-tags'
그 'WIP'커밋? 확실히 나는 메시지를 작성하지 않았다; 'fix-CI' 하나? 나는 그것이 일어날 것이라고 기대하지 않았습니다. 저기 '되돌리기'? 네, 너무 많은 문제를 일으켰습니다 🤷♀ .
Development process has these steps back. You start coding with some idea in mind; maybe you change the approach while coding; maybe you add some extra - not 100% related - boy-scouting; maybe you reinforce the coverage of a piece you're to use, etc.
문제는 마스터에 병합할 때 최종 기록이 더 좋아 보일 수 있다는 것입니다.
git
를 사용하면 과거를 바꿀 수 있으며 처음부터 잘한 척할 수 있습니다.우리에게 필요한 것은 시간의 보석
$> git rebase --interactive main
예제 브랜치
시간 여행을 망치기 전에 기능 분기를 도식화합시다.
eslint
및 tsconfig
구성 파일에 대한 관련 없는 변경 사항4, WIP(커밋 #3 계속)
get reset
사용) 두 구성 요소를 모두 프로젝트에 유지합니다. tsconfig
걸음마
1. 당황하지 마십시오.
일단 커밋하면 작업을 잃을 수 없음을 기억하십시오(*).
상위 커밋의 참조(해시)를 저장할 수 있습니다. 이것은 초기 상황으로 돌아가기 위해 언제든지 패닉 버튼으로 사용할 수 있습니다.
$> git reset --hard <ref>
(*) there could be extreme situations like loosing the hard drive or zombie apocalypse 🧟 but you get what I mean.
2. 'WIP' 및 '이전 수정' 스쿼싱을 시작합니다. 부모에게 커밋합니다.
해당 커밋에 대해 단어
pick
를 s
로 변경합니다. 이 예에서:$» git rebase --interactive main
pick 7da219e new dependency 'react-draggable-tags'
pick f6ad24c chore: review .eslint + tsconfig
pick 8796b3e feat: replace internal library for <DragDropWrapper />
s 914cca3 wip
pick d14ffee new component <DragDropGridWrapper />
pick 6a84dd7 testing
s 7dfcee2 fix ci
pick ee409e7 revert DragDropWrapper (recover prev. code)
pick f6dec33 chore: revert tsconfig
찌그러뜨리면 결과 메시지를 묻는 메시지가 표시됩니다. 이 경우 커밋 메시지 #2를 두 번 모두 버립니다.
3. 관련된 모든 커밋을 함께 배치(이동)합니다.
이 예에서는 최상위 커밋을 해당 커밋 바로 뒤에 옮깁니다. 게다가 테스트 커밋을 부모에게 스쿼시하고 있습니다.
4. 계속 짓누르기
이제 우리는 이 3개를 가지고 있습니다 - 그것들을 '섹션'이라고 부르겠습니다. 우리가 마지막으로 스쿼시를 할 수 있다는 것이 공평해 보입니다.
Note: with
rebase
you may get merge conflicts (exactly the same way you face conflicts with git merge).
My recommendation is to keep focused on "How will this code look like in the final picture?"; pretend you did nailed it from the beginning.
5. 마무리 💅. (r) 커밋 메시지를 다시 작성할 기회를 잡으십시오.
개인적으로 저는 Semantic Commit Messages를 사용합니다. 하지만 다른 시간에 다룰 수 있습니다.
목욕 후 🧽 우리 지점입니다. 훨씬 낫죠?
$> git log --pretty=format:'%h - %s' main..feature/drag-n-drop-grid
a3f5f33 - feat: new component <DragDropGridWrapper />
f6ad24c - chore: review .eslint
7da219e - chore: new dependency 'react-draggable-tags'
TL; DR
"WIP"및 "Fix prev. commit"을 부모에게 스쿼시합니다.
Reword(r) 커밋 메시지.
- Thanks for reading 💚.
Reference
이 문제에 관하여(병합하기 전에 분기를 만드세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/manuartero/do-up-your-branch-before-merge-4ppl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)