티스토리 뷰
이전 글에서 git과 github에 대해 알아봤습니다.
[웹 앱프로그래밍] Git을 설치하고 Github에 업로드 하기
이제 우리 프로젝트를 git 으로 소스 컨트롤을 하고 github에 올려 보도록 하겠습니다.
먼저 해야할 일이 파이썬에서 pip로 설치한 패키지들이 있습니다. 우리가 만든 프로젝트에서 필요한 패키지들을 다운로드하여 설치를 했습니다. Flask가 대표적이겠죠. 물론 다른 외부 패키지들을 설치를 해도 마찬가집니다. 우리 소스를 공유해서 다른 사람이나 다른 피시에서 다운받아 실행을 하려면 필요한 패키지들이 설치가 되어 있지 않으면 import 에러를 만나게 됩니다. 그럼 오류 나는 패키지들을 한땀한땀 설치를 해줘야 하는데 정말 힘들 수 있습니다. (물론 우리는 flask만 설치했기 때문에 flask만 설치하면 되는데 라고 생각할 수 도 있지만 나중에 프로젝트가 조금 커지고 다른 패키지들을 사용을 했다고 생각하면....)
그래서 이 패키지들을 정리해서 문서로 남겨 두고 파이썬 소스를 받아 실행하기 전에 정리된 필요 패키지들을 한 번에 설치를 하는 방법이 있습니다.
pip freeze라는 명령으로 설치된 패키지들을 볼 수 있습니다.
이걸 파일로 저장하기 위해서는 >(리다이렉션)을 사용해서 파일에 저장을 할 겁니다.
우리는 Flask 가 설치된 가상 환경에서 작업을 해야 합니다. 명령어(cmd) 창에 (myenv) 이게 나와야 함!!
그리고 아래 명령어를 입력해봅시다.
pip freeze > requirements.txt
위와 같은 내용으로 requirements.txt 파일에 저장이 됩니다.
이제 소스와 requirements.txt 이 파일만 있으면 어디서든 같은 환경에서 작업을 할 수 있어요.(파이썬 버전과 가상 환경만 갖춰져 있다면)
우리가 배우고 있는 Flask 프로젝트를 git에 저장해서 소스 관리하고 github에 올려 보도록 하겠습니다.
이전 글에서 git init 이라는 명령으로 git 저장소를 생성할 수 있는데 우리는 vs code 를 사용 하기에 vs code에서 git을 사용해봅시다. vscode를 설치하면 기본적으로 소스 제어가 있습니다.
만약 보이지 않는다면 아래 그림에서 초록색 체크 부분(빈곳)에서 마우스 오른쪽 클릭을 하면 메뉴가 나오는데 거기에서 소스 제어를 선택하면 위와 같이 소스 제어가 나타납니다.
소스 제어에서 현재 폴더 즉, 지금 우리가 작업하고 있는 폴더 flask 프로젝트가 열려 있는데 여기에 리포지토리 초기화 버튼을 누르면 됩니다. (git init 명령이라고 보면 됩니다.) 초기화가 되고 나면 지금 폴더 내에 .git 폴더가 생성이 되고 우리 소스들을 관리하게 되는데 변경 내용의 목록을 보면 1191 개가 나오네요.
우리가 생성한 파일들은 몇 개 안되는데 모르는 파일들이 보입니다. 이 파일들은 내 시스템에서는 필요 하지만 소스 공유하거나 관리를 할 필요는 없습니다. 리소스나 소스들은 우리가 수정해서 버전 관리하고 해야 되는데 저 필요 없는 파일들은 그냥 우리 개발환경에서 자동으로 생성된 파일들입니다. 파일 목록을 한번 보죠.
여기서 필요 없는 폴더는. vscode와 __pycache__, myenv 가 되겠네요. myenv는 우리가 생성하긴 했지만 가상 환경 파일들이 들어 있기 때문에 언제든지 다시 생성이 가능합니다. 그래서 저 폴더들을 제외를 시켜야 되는데(삭제가 아님 주의!!) git에서 제외해야 할 리스트들을 파일에 적어서 제외시킬 수 있습니다. .gitignore 라는 파일인데요.(데스노트 같은)
저 .gitignore 파일을 생성해서 제외되어야 할 파일 이름이나 디렉토리(폴더) 등을 적으면 됩니다. 어떤 것을 제외해야 되는지를 잘 모를 수도 있습니다. 이때 내가 어떤 언어로 개발하고 어떤 운영체제이고 어떤 툴에서 개발하는지 필요 없는 파일들 즉 gitignore 목록을 자동으로 만들어 주면 좋겠다는 생각이 드는데 딱 이걸 만들어 주는 사이트가 있습니다.
사이트 이름도 gitignore.io 입니다. 진짜 없는 게 없는 세상입니다. 생각하는 거는 찾으면 다 있습니다.
gitignore.io
Create useful .gitignore files for your project
www.gitignore.io
여기에 접속해서 우리가 사용하고 있는 언어나 툴들을 써봅시다.
위와 같이 쓰고 생성을 누르면
자동으로 목록을 알려 줍니다. 이제 우리 프로젝트 폴더에서 .gitignore 파일을 만들고 위 사이트에서 만들어준 전체 내용을 복사해서 붙여 줍니다.
vscode 에서 새 파일을 만들고 gitignore.io 에서 복사한 내용을 붙여 넣고 우리가 만든 가상 환경 폴더도 추가해줍니다.
vscode 설정 폴더와 __pycashe__ 폴더가 제외되고 변경된 소스(관리할 파일)가 많이 줄었습니다. 7개 나오네요.
settings.json 파일은 .vscode 설정 중에제외하지 말라는 ! 표시가 있는데 이 설정 파일이 필요 없으면 지워 주면 됩니다.
커밋이 완료되었으면 github에 push를 해서 업로드를 해봅니다. 지난 글을 참고하여github 에서 flask 프로젝트를 올릴 새 리파지토리를 하나 생성합니다.
생성하고 나면 올리는 방법 설명에서
…or push an existing repository from the command line
부분의 git remote add origin 명령으로 vscode 터미널에서 remote repository(원격 저장소)만 설정하고 push를 해봅니다.
remote 설정 후 아래 ... 버튼을 누르고 푸시를 선택합니다. 그러면 그전에 github에 한번 로그인을 했다면 올라갈 것이고 아니면 로그인 창이 뜨면 github에 로그인하면 올라갑니다.
출력 탭을 선택해서 확인을 해봅니다.
github에 가서 페이지 새로 고침 해서 확인을 해봅니다.
잘 올라갔네요.
초록색 버튼 Clone or download 버튼을 눌러 주소를 복사를 해서 소스 공유를 할 수 있고 다른 PC에서도 소스를 다운 받아 사용할 수 있습니다. 우리가 만든 github 저장소는 public(공개)로 했기 때문에 누구나 볼 수 있습니다. 이제 이 저장소를 비공개로 하고 특정 사용자를 추가하여 접근할 수 있게 설정을 바꿔 봅니다. (처음부터 private으로 만들어도 됩니다.)
설정 버튼을 누르고 제일 아래로 쭉 내립니다. Danger Zone 이라고 나오는데 아래 보면 Make private 버튼이 있습니다.
눌러봅니다.
아래 버튼이 활성화되면 클릭하면 github 패스워드를 입력하라고 나오는데 입력을 해줍니다.
Private 표시가 되고 비공개로 전환이 된 것을 확인할 수 있습니다. 이제 접근 권한을 가질 사용자를 추가해봅니다.
또 설정으로 들어가서 Manage access 탭을 선택합니다.
초록색 버튼을 누른 후
초대받은 사람은 메일을 받게 되고 github에 로그인을 하고 나면
수락을 하면 소스가 공유됩니다. 공동 작업을 할 수 있게 되었습니다.
다음 글은 다른 사용자가 github에서 flask 소스를 받아 개발을 이어서 진행할 수 있게 해 봅니다.
'Python' 카테고리의 다른 글
Github 에 올린 Flask 소스 로컬 PC 에 다운 받아 개발 및 실행 (0) | 2020.05.21 |
---|---|
Python Flask SQLAlchemy ORM (0) | 2020.05.21 |
Git을 설치 하고 Github에 업로드 하기 (0) | 2020.05.15 |
파이썬 플라스크(Python Flask) static 리소스 활용 (0) | 2020.05.15 |
파이썬 플라스크(Python Flask) errorhandler, abort (0) | 2020.05.15 |
- Total
- Today
- Yesterday
- javascript
- 플라스크
- 리눅스
- Java
- HTML
- 웹앱
- 웹앱 프로그래밍
- python
- Cloud
- WEB
- Hello World
- 오라클
- GCP
- DB
- GIT
- nginx
- 도커
- 자바
- docker
- 부트스트랩
- 파이썬
- Visual Studio
- oracle
- flask
- pythonanywhere
- mysql
- 자바스크립트
- github
- 웹앱프로그래밍
- 클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |