Git 알아두면 좋은 것들 (.ignore, hooks, flow)

Jiwon·2021년 5월 10일
0

Git

목록 보기
7/8

Git .ignore


파이썬의 소스코드 파일들을 올리려고 할 때
.idea/
venv/
폴더를 볼 수 있는데

.idea/
해당 프로젝트의 설정 값들이 담기게 되는 폴더이다.
개인 아이디 설정 값이기 때문에 다른 사람들과 공유할 필요가 없다.

venv/
가상환경을 담는 폴더이다.
local의 버전에 따라서 패키지 파일들을 가져오는 것이기 때문에 다른 사람들과 공유하면 버전이 맞지 않아 깨질 가능성이 있다.
내부에 자리 잡고 있는 용량이 커서 각자 컴퓨터에서 설치해서 관리하는게 더 용이하다.

따라서 두 폴더는 감시대상으로 포함시키지 않을 것.

그래서 프로젝트에서 원하지 않는 백업파일, 로그파일, 컴파일된 파일들을 git에서 영구히 제외시키고 싶은 경우 .ignore을 이용한다.

사용하는 언어별로 또는 프레임워크 별로 정해진 무시할 폴더나 파일이 정해진 경우도 있다.
파이썬은 venv폴더, 노드는 빌드파일 등
git으로 관리하지 않아도 되는 폴더들이 있다.

Git hooks

commit전에 테스트를 돌려보거나, lint를 깜빡할 경우.
특정 상황에 특정 스크립트를 실행할 수 있도록 하는 Hook이라는 기능을 지원한다.

hooks 안에 있는 것들은 10가지의 상황에 발동하는 스크립트들을 의미한다.
즉, hook이라는 기능을 이렇게 다양하게 제공하고 있다. 라는 의미

파일을 만들고 안에 echo "Hi"를 작성했다.
참고로 echo "Hi"는 Hi를 출력하는 함수.
print와 같다.

그런데 이렇게 하면 에러가 발생한다.
왜?
pre-commit에 권한이 없어서.

파일에 대한 권한에 대해서도 신경을 써야하는 경우가 있다.
권한을 모두 줄 때는 777을 써준다.

이런 git hooks를 이용하면
commit전에 반드시 테스트를 돌리게 한다거나
이후 슬랙에 알람을 보내는 등 다양하게 사용이 가능하다.

유의사항으로는
형상관리가 되지 않기에 hook을 다른 사람과 공유하려면 다른 방법을 사용해야 한다.
hook의 경로를 변경할 수 있는 설정을 찾아서 적용하거나 다른 라이브러리 들을 이용하거나, README에 기본 설정을 변경하도록 하는 안내 문구를 적어두는 방법도 있다.
이를 통해 다른 사람도 동일한 hooks를 사용할 수 있도록 유도해야 한다.

Git flow

git을 사용할 때 통상적인 규칙
즉, 형상 관리 전략

Git flow에서 사용하기로 한 브랜치들

  • Master : 제품으로 출시되는 브랜치
  • Develop : 다음 출시 버전을 개발하는 브랜치
  • Feature : 기능을 개발하는 브랜치
  • Release : 이번 출시 버전을 준비하는 브랜치
  • Hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치

Master, develop
은 Remote repository에 항상 유지되는 브랜치로

Master branch : 배포되었거나 배포될 소스가 저장되는 브랜치
Develop branch : 다음 배포를 위해서 개발을 진행하는 브랜치

Feature branch : 각 개발자에 의해 기능 단위 개발이 진행되는 브랜치
Release branch : 내부적으로 배포할 준비가 되었다고 생각되는 소스가 저장되는 브랜치
Hotties branch : 배포 버전에 생긴 문제로 긴급한 트러블슈팅이 필요할 때 개발이 진행되는 브랜치

profile
과연 나는 ?

0개의 댓글