[Git] 여러명과 git 사용하기
HappyCoding/git

[Git] 여러명과 git 사용하기

git은 Version Control System으로

여러사람이 같은 프로젝트를 관리하는데 유용하다.

가장 기본적인 명령어는

git add  “파일 이름“
git commit -m "커밋내용"

이런 기본 사용 방법은 어디서도 쉽게 배울 수 있으니

함께 프로젝트를 할 때에 주의해야할 부분에 대해서 적어보려고 한다.

0. 기본 생성 파일

README.md, .gitignore, .gitmessage.txt 그리고 공개한 프로젝트일 경우 License 까지 업데이트 한다.

README.md파일은 프로젝트에 대한 자세한 안내를 해주는 가이드 문서이다. 프로젝트의 목표가 무엇인지, 제목, 설명과 더불어 이 프로젝트의 실행방법(설치방법), 사용방법까지도 제공해야한다.

.gitignore 다양한 개발 언어에 따라 표준 규격이 있다. https://github.com/github/gitignore 여기서 샘플 규격을 가져올 수도 있지만, 기본적으로 파일 폴더 경로, 파일이름을 적어도 된다.

.gitmessage.txt 팀원이 커밋을 공통된 규격으로 메세지를 편리하게 작성하기 위해 사용한다.

License 라이센스마다 다르지만, 다른 개발자가 본인의 프로젝트에서 할 수 있는 것과 없는 것을 알려주기에 사용한다.

1. .git 이 있는 폴더 내에서 git 을

.git을 확인하지않고 상위폴더나 하위폴더에서 git 명령어를 사용하면 언젠가는 문제가 발생한다.

되도록이면 .git이 있는 폴더를 확인한 뒤에 git 명령어를 사용한다.

리눅스 명령어 ls 또는 ls -l 를 사용해 현재 위치의 폴더에 .git이 있는지 확인한 뒤에 add commit push하도록 하자.

2. git 명령어를 사용하기 전 항상 git pull

git pull을 통해 다른 팀원의 최신 작업 내역을 내가 작업하는 디렉토리에 반영해주고, git push해야 한다.

이렇게 해도 충돌 사고가 난다. 그럴 땐, 또 원만한 합의를 위한 시간이 소모되기 때문에, 사람마다 따로 branch를 나누어서 이름 branch를 만들어 작업하기도 하지만, 보통은 그렇게 하지 않는다고 한다. 버전에 따라 branch를 만들어 main으로 합쳐 관리한다.

  • 이전에는 메인 브랜치를 master 브랜치라고 했으나, 이게 노예제 master/slave 를 떠올리게 한다는 구글 크롬 개발자의 발언에 바로 수정함. 그런데, 용어 변경으로 기존 시스템과 호환 등 아직 반영되지 않은 곳도 있어서 우려가 있는 것으로 알고있다.

3. ignore 처리하기

ignore 해야하는 이유는 두가지가 있는데 git은 디렉토리를 관리, tracking한다. 그래서 캐시 로그 파일 등 github 레포지토리로 올라갈 경우에 다른 팀원들과 CONfilict가 더 자주 일어날 수 있고 두번째 이유는, 보안문제로 직결되는 정보가 유출된다는 문제가 있을 수 있다.

그래서 .gitignore라는 파일을 만들어서 ignore할 파일 이름이나, 경로를 적어준다.

  1. 파일 내에는 임시 리소스 등 (예: 캐시 파일, 로그 파일, 컴파일된 코드)
  2. 다른 개발자들과 공유할 필요가 없거나, 공유되어서는 안되는 로컬 설정 파일
  3. 로그인 암호나 키, 혹은 credential 파일들과 같이 민감한 정보를 담고 있는 파일

git statusgit diff 와 같은 명령어 수행시에 검출되지 않고, git add . 등처럼 전체 파일을 다 올리려고 할 때 stage 영역에 추가되지 않는다. 제대로 등록되었는지는 아래와 같이 약간 옅은 색으로 보이는 걸로 확인할 수 있다.

4. git message 탬플릿으로 commit 메세지 통일하기.

맨 처음 기본 사용방법으로 말한 부분으로 올라가보면, git commit -m "이러이러한 이유로 버그를 수정했습니다. " 와 같이 커밋 할 수 있다. 하지만 여러사람이 함께 사용하는 버전을 관리해야하기 때문에 commit 메세지를 통일하여 프로젝트를 관리하면 좋다.

commit 메세지는 탬플릿으로 함께 저장하지만, 위에서 본 gitignore에서 함께 관리해 깃헙저장소에는 올리지 않기도 한다. (올린다고해도 팀원 모두가 한 번씩의 설정은 해야하기 때문에) git message 템플릿 설정하는 법을 공유한다.