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

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

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

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

Avatar for Mu-Hun

Mu-Hun PRO

May 31, 2022
Tweet

More Decks by Mu-Hun

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 명령어 소개 및 실습