이제 파이보에 깃을 사용할 준비가 되었다.
가장 먼저 할 일은 저장소(repository)를 만드는 것이다. projects/myapi
에서 git init 명령을 실행하자.
[파이참 터미널]
(myapi) c:\\projects\\myapi>git init
Initialized empty Git repository in C:/projects/myapi/.git/
git init 명령은 가상 환경을 실행하지 않아도 된다.
그러면 C:/projects/myapi/.git/
디렉터리가 생성된다.
이후 깃의 관리는 모두 이 디렉터리에서 이뤄질 것이다.
만약 .git 디렉터리가 보이지 않는다면 윈도우 탐색기의 [보기] 메뉴에서 "숨긴 항목" 옵션을 체크해서 선택해 보자.
그러면 projects/myapi
에서 git status 명령을 실행해 보자.
[파이참 터미널]
(myapi) c:\\projects\\myapi>git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.idea/
__pycache__/
(... 생략 ...)
nothing added to commit but untracked files present (use "git add" to track)
git status 명령은 현재 저장소의 상태를 출력해 준다. 지금 보이는 메시지는 아직 관리되지 않는 파일(Untracked files)을 보여 준다. 또 이 파일을 관리하려면 git add 명령을 이용하라고 조언도 해준다.
앞에서 조언한 대로 git add
명령을 수행하기 전에 깃으로 관리할 파일을 고민해야 한다.
예를 들어 파이보를 만들며 직접 작성한 database.py, domain 디렉터리 등은 깃으로 관리해야 할 대상이 맞지만 .idea나 myapi.db는 사용자별, 시스템별로 달라지는 파일이므로 깃으로 관리하면 안 된다.
.idea는 사용자 설정을 저장하는 파이참 전용파일이고, myapi.db 파일은 SQLite의 데이터베이스 파일이다.
예를 들어 여러 명이 같은 저장소에서 작업할 때 .idea 파일을 누군가 변경한다면 내가 설정했던 파이참 설정 내용이 다른 사람의 것으로 변경되는 문제가 발생한다. 이런 상황을 방지하기 위해 .gitignore
파일을 작성하여 관리하지 않는 대상을 기술해 주어야 한다. 다음처럼 .gitignore
파일을 생성해 보자.
[파일명: projects/myapi/.gitignore]
.idea
myapi.db
*.pyc
__pycache__
migrations
alembic.ini
데이터베이스는 서버 환경에 따라 다를수 있으므로 데이터베이스와 관련된 migrations 디렉터리와 alembic.ini, myapi.db 파일은 버전 관리 항목에서 제외하였다. 그리고 컴파일된 파이썬 파일인 *.pyc
와 __pycache__
디렉터리도 깃으로 관리되지 않도록 .gitignore
파일에 추가해 주었다.