티스토리 뷰

728x90
반응형

[ 목표 ]

 

새로운 프로젝트를 시작하고 (로컬 프로젝트를 만들고)

깃헙에 올릴 때, 

 

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을 입력해줍니다. 

 

 

 

 

그 다음 어떤 프로젝트인지 물어보면 대답해줍니다.

 

 

그럼 이렇게 쭉 로그가 출력됩니다.  (에러안나면 성공한 것임)

 

 

깃헙들어가보면 잘 동작했네요..! 

 

반응형
댓글