Git commit & push

원태연·2021년 9월 13일
0
post-thumbnail

개발자에게 git/github는 필수 역량이다

Git

;버전관리 프로그램

> 수요

코드를 작성하다 보면 이것저것 바꾸어 보고, 새로운 시도들을 하며 기존의 코드들을 덮어씌우게 된다. 그 새로운 시도가 잘 작동하지 않는다면, 다시 되돌아가야하는데 cmd+z의 한계를 넘어선 수정은 되돌리기 힘들다.

시점의 구분없이 항상 마지막 수정본만 가지는 파일의 특성상 버전이 변경될 때 마다 새롭게 저장을하며 파일 수 를 늘려야 했고, 변경사항들을 체크하려면 하나하나 열어보며 직접 비교를 했어야 했다.

> 기능

다행히도 이런 고민들과 필요는 git이라는 깃똥찬 프로그램을 이끌어 냈다.
git을 통하여 파일들의 변경사항들을 추적하고, 원하는 시점(버전)들을 기록하여 자유롭게 그 시점들을 이동할 수 있게 되었다.

추가적으로 branch라는 개념의 도입으로 협업에서도 전체 개발 소스를 공유하면서 개발 파트를 나눌 수 있고 같은 모듈을 개발하더라도 소스를 서로 공유하며 개발할 수 있는 환경을 만들어 주었다.

그 이외에도 유용한 기능들과 무료라는 이점 덕분에 최초 개발된 2005년 이후로 아직까지도 필수역량으로서 자리잡고 있다.

"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."

-https://git-scm.com/ (git공식사이트)

GitHub

;Git을 업로드 할 수 있는 웹사이트

git을 통해 추적하는 파일들의 버전을 업로드하거나 다른사람들의 버전을 다운받을 수 있다. git을 업로드하는 웹사이트는 몇가지 더 있지만, github이 가장 보편적으로 사용되고 있다.

"GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere."

-https://guides.github.com/activities/hello-world/ (github공식 사이트)

commit & push

git init 
git remote add origin [remote repository address]
git add .
git commit -m "[commit message]"

local directory에 git을 활성화한뒤 remote repository와 연결한다
추적할 파일들을 add 한뒤 그 시점(버전)을 commit한다.

여기서 commit message를 입력하는데, 권장되는 규칙이 있다.

올바른 commit message의 목적

  • 더 좋은 커밋 로그 가독성
  • 더 나은 협업과 리뷰 프로세스
  • 더 쉬운 코드 유지보수

commit message 규칙

  1. 제목과 본문을 빈 행으로 구분한다
  2. 제목을 50글자 내로 제한
  3. 제목 첫 글자는 대문자로 작성
  4. 제목 끝에 마침표 넣지 않기
  5. 제목은 명령문으로 사용하며 과거형을 사용하지 않는다🌟
  6. 본문의 각 행은 72글자 내로 제한
  7. 어떻게 보다는 무엇과 왜를 설명한다

commit message example

commit []
Author: []
Date:   []

	Simplify serialize.h's exception handling  //제목

   Remove the 'state' and 'exceptmask' from serialize.h's stream
   implementations, as well as related methods.

   As exceptmask always included 'failbit', and setstate was always
   called with bits = failbit, all it did was immediately raise an
   exception. Get rid of those variables, and replace the setstate
   with direct exception throwing (which also removes some dead
   code).

   As a result, good() is never reached after a failure (there are
   only 2 calls, one of which is in tests), and can just be replaced
   by !eof().

   fail(), clear(n) and exceptions() are just never called. Delete
   them.

commit message에도 구조가 있다.
제목과 본문
그 구조를 잘 파악하고 규칙들을 적용하자.
tip. 제목이나 단행 commit message를 작성할 때,
(If applied, this commit will), [commit message]를 생각하면 좋다.

ex)

  • (If applied, this commit will) Remove deprecated methods ✅
  • (If applied, this commit will) Changing behavior of objects ❌

참조

profile
앞으로 넘어지기

0개의 댓글