Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Add 에 대해서 알아보자 - 의미 있는 변경 이력과 Patch

Add 에 대해서 알아보자 - 의미 있는 변경 이력과 Patch

유니크굿컴퍼니에서 2022년 5월 31일에 진행한 Git 세미나 진행 슬라이드입니다.

Muhun Kim

May 31, 2022
Tweet

More Decks by Muhun Kim

Other Decks in Programming

Transcript

  1. Contents 커밋의 정의 커밋을 추가하는 모범사례 의미 있는 변경 이력이

    중요한 이유 02 커밋을 무엇이라고 생각하시나요 현 시점의 모든 수정 이력을 추가 작성할 커밋 메세지에 맞는 수정 이력을 골라서 추가 01 커밋을 어떻게 추가하시나요? 데모 및 실습 어떻게 훈련하면 좋을까요? 03 git add patch 소개
  2. 커밋을 어떻게 추가 add 하고 있나요? 01 여러분은 커밋을 어떻게

    추가하시나요? • 현 시점의 모든 수정 이력을 추가 • git add all: 모든 unstaged change modified, untracked 를 추가 • git add path : 특정 경로의 모든 수정사항을 추가 • 작성할 커밋 메세지에 맞는 수정 이력을 골라서 추가 • git add patch • cherry pick 3
  3. 01 여러분은 커밋을 무엇이라고 생각하시나요? "Record changes to the repository"

    https://git-scm.com/docs/git-commit • 사전적 정의 : 저지르다, 맡기다, 적어두다, 약속하다 • 소스코드의 최신 변경 사항을 기록해두는 것 • 제 견해 작업을 마치는 한 단위 - Atomic commit convention - Wikipeda 5
  4. 01 여러분은 커밋을 무엇이라고 생각하시나요? "When you commit a change

    to the repository, make sure your change reflects a single purpose" • 사전적 정의 : 저지르다, 맡기다, 적어두다, 약속하다 • 소스코드의 최신 변경 사항을 기록해두는 것 • 제 견해 작업을 마치는 한 단위 - Atomic commit convention - Wikipeda - Commit logical changesets, Apache Subversion Best Practices 6
  5. 02 원자적 커밋의 중요성 • 코드리뷰가 쉬워진다. 리뷰 요청 전에

    스스로 검토하기도 편합니다. • 작업 이력이 명확해진다. 시간이 많이 지난 후에도 작업 내용 파악에 용이합니다 • 작업 이력을 되돌리기 쉬워진다. • cherry pick 의 활용 여지가 커진다. 의미 있는 변경 이력의 중요성 7 ੄޷ ੓ח ੉۱ ਤীࢲ ӥ੄ ৈ۞ ӝמਸ ؊ ࣻਘೞѱ ഝਊೡ ࣻ ੓णפ׮.
  6. 03 명령어 소개 및 실습 git add patch or shorthand

    p y ա n ਸ ੑ۱ೞݶ п ࠗ࠙ਸ Stage ೡ૑ ݈૑ Ѿ੿ೡ ࣻ ੓णפ׮. ? ܳ ੑ۱ೞݶ ࢶఖೡ ࣻ ੓ח ݺ۸ਸ ࢸݺ೧સפ׮. https://git-scm.com/book/ko/v2/Git-بҳ-؀ചഋ-ݺ۸#_౵ੌ੄_ੌࠗ࠙݅_staging_areaী_୶оೞӝ 9
  7. ੷ח ࣻ੿ ղ৉੉ ழ޿ೡ ղਊ ੉࢚ਵ۽ ࢤ҂ਸ ٸ git add

    --all, git add <path> ীࢲ --patch ২࣌ਸ э੉ ࠢੑפ׮. 10 03 명령어 소개 및 실습
  8. TIP : git diff • git diff: 워킹 디렉토리와 Staging

    Area 비교 • git diff staged: Staging Area 와 마지막 커밋을 비교 • git diff main branchB : 두 커밋을 비교 https://git-scm.com/book/ko/v2/ࠗ۾-C%3A-Git-ݺ۸য-झշࢫ-׮ܖӝ#_git_di f ୶оೞӝ ੹ റ۽ ߸҃ ੉۱ਸ ౵ঈೞҊ रਸ ٸ ࢎਊ೤פ׮. 11 03 명령어 소개 및 실습
  9. CLI에서 비교하기 불편해요... • 공식 GUI 도구 : gitk, git

    gui • 서드파티 GUI 도구 : rebase branch switch할 때 로 컬 변경을 자동으로 statsh하고 apply도 알아서! gitk ൤झషܻ दпച ࠭য GitKraken https://git-scm.com/book/ko/v2/ࠗ۾-A%3A-׮নೠ-ജ҃ীࢲ-Git-ࢎਊೞӝ-GUI 12 03 명령어 소개 및 실습
  10. 실습 김유닉은 Git 명령어를 호출하는 간단한 오픈소스 루비 라이브러리를 포크하고

    lib/simplegit.rb 에 깃의 log 명령어를 호출하는 기능을 추가하면서 다른 부분을 같이 수정했다. 해당 기능만 먼저 커밋을 하고 나머지는 또 다른 커밋으로 추가하고 싶다. • modified 상태가 있는 깃 저장소를 바탕으로 실습합니다. • 강의 자료에 첨부한 ZIP 파일을 풀어주세요. https://git-scm.com/book/ko/v2/Git-بҳ-؀ചഋ-ݺ۸#_౵ੌ੄_ੌࠗ࠙݅_staging_areaী_୶оೞӝ ੷੢ࣗ ୹୊: https://github.com/schacon/simplegit 13 03 명령어 소개 및 실습 • 다 하시면 git push upstream add patch/ name
  11. 어떻게 지속적으로 훈련하나요? • Staging area 에 넣기 전, 커밋하기

    전에 한번 더 생각해보기 • 리뷰어의 입장에 한번 더 고민해서 작성한 문서가 읽기 편한 문서가 됩니다. • 하면 더 좋음 : 관심 있는 오픈소스 프로젝트 이슈와 PR 살펴보기 14 03 명령어 소개 및 실습