티스토리 뷰
[ 목표 ]
새로운 프로젝트를 시작하고 (로컬 프로젝트를 만들고)
깃헙에 올릴 때,
1. gitignore 파일을 만들기
2. Adding an existing project to GitHub using the command line 문서따라 명령어 입력하기
하는데 좀 귀찮아서 스크립트를 만들어봅니다.
스크립트는
깃헙 연동할 프로젝트가 있는 디렉토리로 이동 후
& remote_url과 gitignore_url를 설정해주고
& 이걸가지고 gitignore파일을 만들고 깃헙관련 명령어들을 실행해주는 순서입니다.
[1] move_to_local_project
import os
def move_to_local_project():
directory = input('프로젝트 디렉토리를 입력해주세요\n')
os.chdir(directory)
os패키지를 import하고 chdir (change directory의 줄임말) 메소드로
현재 디렉토리를 바꿔줍니다.
(참고로 os.system('cd 어떤 디렉토리') 하면 안되더라구요..! chdir써줘야합니다.)
[2] set_github_remote_url
def set_github_remote_url():
global remote_url
remote_url = input('REMOTE_URL을 입력해주세요\n');
원격저장소 url을 입력받습니다.
[3] set_gitignore_url
gitignore 추가할 때를 생각해보면
gitignore파일을 만든 후,
github.com/github/gitignore 여기서 각 환경에 맞는 코드를 해당 파일에 복붙해줍니다 .
근데 이제 스크립트가 gitignore파일을 만들고
프로젝트 타입? 플랫폼?에 해당하는 url에서 코드를 다운받아서 파일에 쓰게 해줍니다.
이것을 set_gitignore_url, make_gitignore_file 두개의 메소드로 구현해줄 건데요
먼저 set_gitignore_url입니다.
import requests
class GitignoreUrl:
ios = 'https://raw.githubusercontent.com/github/gitignore/master/Swift.gitignore'
flutter = 'https://raw.githubusercontent.com/github/gitignore/master/Dart.gitignore'
django = 'https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore'
def set_gitignore_url():
candidates = ['ios', 'flutter', 'django']
project_type = input(' | '.join(candidates) + ' 중 어떤 프로젝트인가요?\n')
if project_type in candidates:
global gitignore_url
if project_type == 'ios':
gitignore_url = GitignoreUrl.ios
elif project_type == 'flutter':
gitignore_url = GitignoreUrl.flutter
elif project_type == 'django':
gitignore_url = GitignoreUrl.django
저는 평소 프로젝트로 ios, flutter, django 3종류만 만들어서 저렇게 세 타입만 추가해줬습니다.
그리고 딱 텍스트만 가져올 수 있도록
여기서 Raw누르면 나오는 url로 설정해줬습니다.
(파이썬은 swift처럼 enum을 확장성있게 못써서 넘 아쉽네요,,)
[4] make_gitignore_file
gitignore파일을 만들어줍니다.
그리고 위의 단계에서 설정된 gitignore_url로 부터 text를 가져와서
gitignore파일에 써줍니다.
def make_gitignore_file():
os.system('touch .gitignore')
response = requests.get(gitignore_url)
data = response.text
f = open('.gitignore', 'w')
f.write(data)
f.close()
[5] run_commands
Adding an existing project to GitHub using the command line 에 있는 명령어들을 복붙해줍니다.
def run_commands():
os.system('git init')
os.system('git add .')
os.system('git commit -m "First commit"')
os.system('git remote add origin %s' % remote_url)
# 연결된 원격저장소 확인
os.system('git remote -v')
# 원격저장소에 master라는 branch를 생성하고 push한다.
os.system('git push -u origin master')
[ 최종코드 ]
[ 사용예시 ]
iOS 프로젝트를 만들어볼게요 (이름은 MySample)
gitignore 추가 + 깃헙에 올리고싶다!! 할때 스크립트를 실행해줍니다.
프로젝트 디렉토리를 입력해달라고 나오는데,
프로젝트 폴더를 터미널로 끌어오면 디렉토리가 입력됩니다.
그다음 Remote url을 입력하라고 나오는데
깃헙에 들어가서 원격저장소를 만들고
저 url을 입력해줍니다.
그 다음 어떤 프로젝트인지 물어보면 대답해줍니다.
그럼 이렇게 쭉 로그가 출력됩니다. (에러안나면 성공한 것임)
깃헙들어가보면 잘 동작했네요..!
'🐍 > Python' 카테고리의 다른 글
[Python] f-string (🖐 %-formatting / str.format / string.Template) (0) | 2021.04.09 |
---|---|
[Python] List Comprehension / Dict Comprehension (0) | 2021.04.09 |
[Python] 구글 Geocoding API 사용해보기 (3) | 2020.12.21 |
[Python] 파이썬 타입힌트 (Type Hints) (0) | 2020.11.29 |
[Pandas] 판다스로 Dataset 살펴보기 (유투브 트랜드 데이터 from 캐글) (0) | 2020.07.15 |
- Total
- Today
- Yesterday
- Watch App for iOS App vs Watch App
- Django FCM
- Django Firebase Cloud Messaging
- flutter build mode
- SerializerMethodField
- ipad multitasking
- 장고 Custom Management Command
- PencilKit
- drf custom error
- METAL
- 플러터 얼럿
- cocoapod
- flutter dynamic link
- DRF APIException
- Sketch 누끼
- 장고 URL querystring
- Dart Factory
- Flutter 로딩
- Flutter Spacer
- Flutter Text Gradient
- Python Type Hint
- flutter deep link
- github actions
- 구글 Geocoding API
- ribs
- Flutter getter setter
- 플러터 싱글톤
- flutter 앱 출시
- Django Heroku Scheduler
- Flutter Clipboard
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |