20180720

Today I Learned

  • 온라인 (git, html/css, js, java) 강의 듣기.
  • git과 github 입문 인강 수강.
    • 1단계 : 혼자서 작업하기
      • pull 및 충돌 해결하기
      • reset을 이용한 커밋 되돌리기
      • 브렌치를 만들어서 되돌아가기
      • revert 사용해서 되돌리기
      • 브랜치와 스태시, rebase로 병합하기, 기타 주의사항 (영상 미존재)

  • merge : 특정 브렌치의 내용을 다른 브렌치에 반영.
    • fast-forward merge : 헤드 브렌치에 변경사항이 없고, 병합 대상 브렌치가 헤드로 부터 시작된 경우.
      • 가장 쉬운 merge case. 내 현재 브렌치에서 변경사항이 없는데, 내꺼에서 파생된 브렌치의 변경사항을 머지하는 경우.
    • 헤드 브렌치에 추가적인 커밋이 생기는 경우 충돌(conflict) 발생 가능성이 있다.
      • 충돌이 진짜 헬이긴 한데, 충돌을 두려워 하지 말라고 하셨다.
  • conflict : 간단하게 merge가 실패한 상태.
  • pull : github(원격 저장소) 형상이 local형상보다 최신이라 github 형상을 local에 반영하는 것.
    • fetch(가져오기) + merge
  • 이전 커밋으로 되돌리는 세 가지 방법
    1. reset –hard (소스트리 : 이 커밋까지 현재 브렌치를 초기화)
      • 장점 : 쉽다.
      • 단점 : 이전 커밋이 날아간다, git push –force가 필요하다.
    2. branch 만들어서 되돌리기
      • 되돌릴 형상(커밋)을 대상으로 브렌치 생성 > 체크아웃 > 변경 사항 커밋 > master에 merge
      • 장점 : reset과는 달리 커밋이 사라지지 않는다.
      • 단점 : 트리가 지저분해진다.
    3. revert 사용 (소스트리 : 커밋 되돌리기)
      • 대상 커밋을 head커밋의 자식으로 새로 생성한다.
      • 장점 : 커밋이 사라지지 않는다, 가장 정석적.
      • 단점 : 충돌 가능성이 높다.
  • 스태시나 rebase는 조금 더 알아봐야 할 듯.

  • https://learngitbranching.js.org/ 깃 플로우를 볼 수 있는 신기한 사이트.
  • 기타 주의사항 의 아래 멘트가 엄청나게 인상깊다.

    주석을 남기지 말자 책상도 아니고, 장식장도 아니고 왜 안 쓰는 코드를 남겨놓을까요?

    • 사실 어느정도 이유를 알고 있다. 형상관리 도구 사용에 자신이 없고, 자신에게도 자신이 없으니 주석으로 남겨두는 것이겠지.
    • 나도 회사다닐 때 작업 이전에 주석으로 살려두고, 작업 이후에도 주석을 지우지 않은 불필요한 코드(aka 쓰레기)가 제법 있다.
    • 선배에게 추천 받은 훌륭한 프로그래머가 되는 법 이라는 책에서도 안쓰는 코드를 주석으로 남기지 말자는 메시지가 있었다.
    • 훌륭하지는 못하더라도, 좋은 코드를 작성하고자 노력하는 개발자가 되고싶다.

TO-DO

  • 구구단 다양하게 구현.
  • 모래시계 다양하게 구현.
  • 온라인 (git, html/css, js, java) 강의 듣기.
  • 부스트코스 다시 시작.