Pycharm 프로젝트와 GitHub 저장소 연동하기

2020. 7. 30. 13:03IT, 데이터/Python(파이썬)

728x90

 

 

데스크탑이나 노트북, 업무용 PC 등 다양한 컴퓨터 단말에서 프로그램을 개발하려면 소스코드 및 프로젝트에 필요한 파일을 웹 상에 올려놓고 쓸 수 있는 환경을 만들어놓는 것이 거의 필수라고 할 수 있습니다.

 

이 때 소스코드 버전관리와 웹 공간에 보관 및 배포를 위해 많은 개발자들이 GitHub(깃헙)을 이용하고 있습니다.

원래는 팀 단위 프로젝트에서 서로 코드를 수정하다가 이상하게 꼬이지 않게하기위해 형상관리하는 목적으로 주로 사용되는데, 개인 개발자의 경우에도 일종의 클라우드 저장소처럼 사용할 수도 있고, 손쉽고 체계적으로 코드를 관리할 수 있어서 좋습니다.

 

깃헙은 'Git'(깃)이라는 관리 프로그램을 기반으로 작동하는데, Git은 원래 콘솔에서 명령어를 타이핑해서 이용하는 방식이라 초보 개발자나 분석가가 이용하기 까다로울 수 있습니다. 파이썬 언어를 활용한 개발 및 데이터 분석에 많이 사용되는 IDE인 PyCharm은 자체적으로 GitHub와 연동하는 기능을 GUI로 제공하고 있어서 깃헙 초보자도 편리하게 소스코드 임포트/익스포트 및 동기화를 할 수 있어서 이번 글에서 소개드리고자 합니다.

 

 

(그림출처 : https://www.inflearn.com/course/git-and-github)


0. 사전작업


- PyCharm* 다운로드 및 설치

- GitHub 회원가입

- Git** 설치

 

 

이번 글에서는 위 세 가지 사항이 준비된 이후의 과정을 다루도록 하겠습니다. 만약 준비가 아직 안되신 경우 아래 사이트에서 PyCharm 설치 및 GitHub 회원가입을 하시면 되겠습니다.

 

*PyCharm Community 2020. 1월 버전을 기준으로 설명드리며, 이전버전은 약간의 인터페이스 차이가 있을 수 있습니다.

*이 글은 Windows 환경을 기준으로 설명드리며, 리눅스나 Mac OS의 경우 OS에 맞는 Git을 설치하여 이용하실 수 있습니다. 그 밖의 과정은 웹브라우저와 PyCharm 내부에서만 이루어지기 때문에 큰 차이가 없으리라 생각합니다.

 

 

PyCharm 설치

 

PyCharm: JetBrains가 만든 전문 개발자용 Python IDE

지능적인 코드 완성, 즉각적인 오류 검사, 빠른 수정 등 다양한 기능을 갖춘 Python 및 Django IDE입니다.

www.jetbrains.com

 

GitHub 회원가입

 

Build software better, together

GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.

github.com

 

Git은 PC에 설치하는 프로그램으로 되어있습니다.

아래 사이트에서 맞는 운영체제로 설치 파일을 다운로드 한 후에 설치하시면 됩니다.

하지만 PyCharm에서 바로 Git을 설치하는 방법도 있어서 이쪽이 더 편리합니다.

 

https://git-scm.com/downloads

 

Git - Downloads

Downloads Mac OS X Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific

git-scm.com

 

PyCharm을 켜신 다음 상단의 VCS - Get from Version Control 메뉴를 선택하면 위와 같은 화면이 나오는데요.

Git이 설치되지 않은 상태라면 왼쪽 화면과 같이 'Git is not Installed'라는 빨간색 메시지가 나옵니다.

여기서 'Download and Install'이라고 되어있는 파란색 글씨를 클릭하면 곧바로 설치가 시작됩니다.

 

 


 

1. 프로젝트를 GitHub 저장소와 연결하기


- VCS - Import into Version Control - Share Project on GitHub 메뉴 클릭

- GitHub 로그인 및 레포지토리(Repository) 생성

- GitHub에 업로드(공유)할 파일/폴더 선택

- 생성한 저장소 및 업로드 된 내용 확인

 

 

Git 설치를 마쳤으면, PyCharm에서 작업하던 프로젝트를 Git과 연동하기 위한 작업을 시작합니다.

 

상단의 VCS - Import into Version Control - Share Project on Github 메뉴를 클릭하면,

GitHub 로그인 화면이 나옵니다. 여기서 GitHub 계정정보를 입력하고 로그인하면,

위의 오른쪽 그림과 같이 저장소(Repository)를 새롭게 설정하는 화면이 나옵니다.

 

Repository name은 GitHub에 저장할 새로운 저장소 이름을 설정하면 되고(GitHub에 이미 같은 이름의 저장소가 있다면 등록이 되지 않습니다.), Remote는 PyCharm에서 사용되는 저장소의 별명이라고 생각하시면 되며, Description은 저장소를 설명하는 문구를 기재하시면 됩니다. 이름 지정을 마쳤으면 'Share' 버튼을 누릅니다.

 

 

Share 버튼을 누른 후에 'Add Files For Initial Commit'이라는 창이 나오고 GitHub에 업로드할 프로젝트 파일을 선택할 수 있습니다. 디폴트는 전체 선택 상태로 되어있고 그대로 'Add' 버튼을 눌러도 되는데, 라이브러리 파일같이 본인이 작성하지 않은 자질구레한 파일은 저는 빼고 올렸습니다.

 

 

여기서 주의할 점은 업로드하는 파일 중 100MB가 넘는 파일이 있으면 에러가 납니다!

깃헙은 저장소 내 파일 총 용량에는 특별한 제한은 없는데, 하나의 파일이 100MB가 넘으면 기본적으로는 업로드가 되지 않습니다. 따라서 100메가를 초과하는 파일을 올리려면 추가적인 조치를 해야하는데, 이 단계에서 Add 버튼을 누르지 말고 글의 내용만 따라 읽어주시고, 아래 1-2부터 진행하시면 됩니다. 

 

> 중 요

이 과정에서 PyCharm과 GitHub 연동을 위한 중요한 개념이 등장하는 데 바로 'Commit(커밋)'입니다.

깃헙(GitHub)은 기본적으로 개인이 아닌 여러 사람이 참여하는 프로젝트를 공동으로 수정하고 이력관리하는 목적으로 만들어졌기 때문에 일반적인 클라우드 저장소처럼 연동시켜 놓으면 로컬에서 변경된 사항이 리모트에서 자동으로 동일하게 업데이트되는 동기화 방식으로 작동하지 않습니다. 


대신 PyCharm에서 GitHub으로 파일을 업데이트(변경,추가,삭제 모두 포함합니다.)할 때는 먼저 GitHub에 업데이트할 작업내역을 정의하는 'Commit'을 먼저 수행합니다. 하나의 Commit에는 작업내용과 Commit을 구분하기 위해 이름이 들어갑니다.(위 화면의 'Initial commit'이라고 하는 메시지가 그것입니다.) 그리고 이 Commit을 push(로컬에서 GitHub으로 업데이트) 등의 명령으로 작동시켜야 GitHub 레포지토리에 실질적으로 반영되게 됩니다.

위의 화면은 Commit과 push 두 개의 작업을 좀 더 간편하게 할 수 있도록 Add 버튼을 누르면 Commit 생성 후 자동으로 push까지 진행하는 것으로 이해하시면 됩니다. 

 

Add 버튼을 누르고 조금 기다리면 PyCharm 하단에 위의 화면과 같이 'Successfully shared project on GitHub'라는 메시지를 확인하실 수 있습니다. 그리고 화면 왼쪽 아래에 '9: Git'라는 탭이 새로 보이는데, 이 탭을 클릭하면 위 화면과 같이 로컬(PyCharm)과 리모트(GitHub) 간 연동 사항과 어떤 작업(commit, 커밋)이 있었는 지 이력을 확인할 수 있습니다. 왼편을 보시면 Local 외에도 Remote 아래에 'origin'이라는 아까 GitHub와 연동할 때 'remote' 항목에 지정했던 이름으로 저장소가 등록이 된 것을 확인하실 수 있습니다. 그리고 중간에는 처음으로 깃헙에 파일을 업로드 하는 첫번째 commit을 했기 때문에, 해당 commit 메시지로 적혀있던 'Initial commit' 이름을 확인할 수 있습니다.

 

 

 

 

 

깃헙에 정상적으로 업데이트 되었는지 확인하기 위해 깃헙 웹사이트로 로그인해서 들어가보면 'finance_analysis_test'라는 새로운 저장소가 등록된 것을 확인할 수 있습니다. 이 저장소를 클릭하면 위의 가운데와 오른쪽 화면처럼 저장소 내 폴더와 파일을 확인할 수 있습니다. 제가 업로드 항목으로 선택했던 파일들이 정상적으로 업로드 되었음을 확인할 수 있고, 또 하나 주목할 점은 파일,폴더명 오른쪽에도 'initial commit'이라는 이름을 볼 수 있는데, 언제 어떤 작업에 의해 마지막으로 업데이트 되었는지 확인할 수 있게 해줍니다.

 

 


 

1-2. 100MB 이상 파일 업로드하기


- 빈 저장소 연동하기

- Git Large File Storage 설치

- 커맨드 창에 대용량 파일 확장자 등록

- 연동할 파일/폴더 선택 작업(Commit) 등록

- 로컬에서 GitHub으로 파일/폴더 내보내기(Push) 명령 수행

 

 

 

아까 1-1에서 이 화면에서 100MB가 넘는 파일이 선택된 채로 그대로 Add 버튼을 누르면 에러가 난다고 했었죠.

따라서 일단은 아무 파일도 선택하지 말고 Add 버튼을 누릅니다. 이렇게 하면 GitHub에 저장소만 생성이 되고 아무 파일도 올라가있지 않게 됩니다.

 

 

깃헙 저장소에 100MB 이상 파일을 업로드하기 위해서는 'Git Large File Storage'라는 추가 프로그램을 설치해야 합니다.

 

아래 사이트에 들어가면 위와 같은 웹사이트가 나오는데 윈도우 환경이라면 왼편의 Download 버튼을 클릭하여 설치 파일을 다운받고 파일을 실행합니다. 설치과정은 일반적인 프로그램 설치화면과 똑같기 때문에 Next 버튼만 누르면 금방 설치됩니다.

 

https://git-lfs.github.com/

 

Git Large File Storage

Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.

git-lfs.github.com

 

 

Git Large File Storage 설치를 완료하면 다시 PyCharm으로 돌아와서 하단에 Terminal 탭을 누르고,

위와 같은 터미널 창에서 아래와 같이 명령어 두 개를 입력합니다. (위의 화면 참고)

 

> git lfs install 입력 후 엔터

> git lfs track "*.확장자명" 입력 후 엔터

   (100MB가 넘는 파일이 csv라면 확장자명 자리에 'csv'를, exe라면 'exe'를 입력하는 식입니다.) 

 

이렇게 하면 앞으로 해당 확장자는 용량 제한 없이 GitHub에 올릴 수 있게 됩니다.

 

> 참 고

Git Large File Storage는 깃헙과는 다른 별도의 스토리지로,
대용량(100MB) 파일을 업로드하면 스토리지에 저장이 되고 깃헙은 스토리지의 파일을 참조하는 식으로 구성됩니다.

Git Large File Storage 서버가 네트워크 속도가 좋지 않아서 속도가 느리고, 또한 이마저도 최대 저장용량이 2GB라는 정보가 있습니다.
(https://medium.com/swlh/learning-about-git-large-file-system-lfs-72e0c86cfbaf)

따라서 대용량 파일, 데이터 보관은 깃헙보다는 데이터베이스나 클라우드 저장소를 이용하는 것을 추천합니다. 

 

※ 위의 방법은 Git Large File Storage 웹사이트 및 아래 사이트를 참고하여 작성하였습니다.

 

https://medium.com/@stargt/github%EC%97%90-100mb-%EC%9D%B4%EC%83%81%EC%9D%98-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%98%AC%EB%A6%AC%EB%8A%94-%EB%B0%A9%EB%B2%95-9d9e6e3b94ef

 

Github에 100MB 이상의 파일을 올리는 방법

문제점

medium.com

 

 

설정을 마친 후에 상단의 'VCS - Commit' 메뉴를 클릭합니다.

 

그러면 왼편에 GitHub과 연동할 프로젝트 파일 선택 화면이 나오는데요.

폴더 별로 정리되어 있지 않고 난잡하게 표시되어 있으니, 2x2 사각형 모양으로 되어있는 아이콘(눈 모양 아이콘 왼쪽) 클릭한 후 Directory를 누르면 오른쪽 위와 같이 폴더별로 가지런히 나옵니다.

여기서 연동(업로드)하고자 하는 폴더 및 파일을 선택합니다. venv라는 폴더는 제가 코딩하거나 수집하지 않은 단순 라이브러리 파일이기 때문에 빼고 나머지만 체크하였습니다.

그 다음에는 중간의 빈 공간에는 Commit 메시지를 입력합니다. (저는 Initial File Upload라고 하였습니다.)

그 다음 하단의 'Commit' 버튼을 클릭합니다.

 

아래 Git 탭을 열어보시면 제가 지정한 이름대로 'Initial File Upload'라는 작업내용(Commit)이 생성된 것을 알 수 있습니다.

 

 

앞에서 '중요' 박스에서 설명드렸듯이 작업내용(Commit)을 정의하였으니, 이제 깃헙에 내보내기를 할 차례입니다.

상단 'VCS - Git - Push' 메뉴를 클릭하면 위와 같은 창이 나타납니다.

 

맨 윗줄은 로컬에서 리모트(깃헙) 어느 저장소로 내보내는지 경로를 표시하고 있고,

두 번째 줄부터는 내보내기 할 Commit 작업이 표시되어 있습니다. 현재 상태에서는 별 다른 설정을 바꿀 필요가 없으므로 바로 'Push' 버튼을 클릭합니다.

 

 

용량이 큰 파일을 업로드하기 때문에 push 작업은 시간이 다소 걸립니다. 120메가 남짓한 파일인데, 서버가 부하가 많이 걸려있는지 생각보다 시간이 많이 걸리는군요. 어쨌든 push 작업이 완료되면 오른쪽 하단에 'Pushed master to new branch origin/master'라고 메시지가 나왔습니다. 

 

그리고 다시 Git 탭에 들어가보시면 Initial File Upload 옆에 동그라미가 초록색에서 노란색으로 바뀌었고, 가운데에 태그모양과 함께 써진 글씨가 원래는 master 였는데, push 작업 후에는 origin & master로 바뀌었음을 확인할 수 있습니다.

 

이 커밋 작업에 대한 로그는 지워지지않고 커밋을 만들면 만들수록 계속 누적되서 쌓이는데요. 각 Commit이 push작업이 이뤄졌는지, 그리고 어떤 저장소에 반영되었는지 이 로그를 통해 확인할 수 있습니다.

 

 

이제 마지막으로 깃헙 사이트에 들어가서 업로드 여부를 확인해보겠습니다.

 

1-1에서 했던 것과 마찬가지로 새로운 저장소가 생겼고, venv 폴더를 제외한 업로드 체크한 폴더와 파일이 모두 정상적으로 업로드된 것을 확인할 수 있습니다. 그리고 100메가가 넘는 파일도 정상적으로 업로드 되었습니다.

 

 


 

2. GitHub 저장소를 PyCharm 프로젝트로 가져오기


- 시작화면 또는 상단메뉴 VCS에서 Get from Version Control 메뉴 클릭

- Repository URL 탭 선택

- Github 사이트에서 가져올 저장소 URL 복사

- PyCharm으로 돌아와서 URL 항목 붙여넣은 후 하단 Clone 버튼 클릭

- 상단메뉴 File - Settings에서 프로젝트 인터프리터 설정

 

 

 

깃헙 저장소의 프로젝트를 PyCharm 프로젝트로 가져오는 것은 간단합니다.

프로젝트가 열려있지 않은 상태에서는 프로젝트 열기나 생성하기 대신 'Get from Version Control'을, 프로젝트가 열려있는 상태에서는 위에서 했던 것과 동일하게 상단메뉴 'VCS - Get from Version Control'을 선택합니다.

 

그러면 왼편에 Repository URL과 GitHub 두 개 탭이 보이는데요, 아무거로나 해도 상관없지만, 이번에는 첫번째 Repository URL로 해보겠습니다.

 

상단 드롭다운 메뉴에서는 기본 설정되어있는 'Git'을 선택하고, URL 항목에는 깃헙에 업로드한 저장소의 URL 주소를 복사해서 붙여넣기 합니다. 저장소 URL 위에서 했던 것 처럼 깃헙 웹사이트에 들어가서 생성한 저장소를 클릭하면 이동하는 화면의 URL 주소를 복사하면 됩니다.(위의 오른쪽 화면) (github.com/계정명/저장소명 으로 구성되어있습니다.)

 

PyCharm에서 주소를 붙여넣기하면 아래에 디렉토리(폴더)가 자동으로 부여되는데, 여기서 바꾸실 분은 바꿔주시고, 하단의 Clone 버튼을 누르면 자동으로 저장소의 모든 파일을 PyCharm 프로젝트를 새로 생성해서 불러오게 됩니다.

 

파일의 양이나 용량에 따라 시간이 약간 걸릴 수 있는데, 마치고 나면 오른쪽과 같이 파이참 프로젝트가 생성되고 저장소 내 모든 파일이 로컬에 저장된 것을 확인할 수 있습니다.

 

 

 

 

 

마지막으로 남은 일이 있는데, 지금까지 작업한 것은 GitHub 저장소의 파일을 로컬로 가져온 것이고, 해당 저장소에 보관된 프로젝트가 무슨 언어와 버전으로 작성된 것인지에 대한 설정까지 포함하고 있지 않습니다. 따라서 현재 상태에서 'Run' 실행을 할 경우 프로젝트 인터프리터 설정을 해야한다는 창이 나타날 것입니다.

 

따라서 코드를 작성하거나 실행하기 전에, 상단의 'File- Settings' 메뉴의 'Project - Project Interpreter'에서 파이썬 버전 및 패키지 환경(아나콘다 등) 설정을 해주시면 됩니다. 이 글을 보시는 분들은 PyCharm이나 파이썬 사용 경험이 있는 분들이라 생각하기 때문에 설정방법은 생략하도록 하겠습니다. (인터넷에 관련 글들이 많이 나와있으니 참고하시면 됩니다.)

 

 


 

3. 로컬 PyCharm 프로젝트 → GitHub 저장소로 업데이트


- VCS - Git - Compare with Branch 로 변경사항 확인

- VCS - Git - Commit Directory 로 커밋 작업 정의

- VCS - Git - Push 로 커밋 작업을 GitHub 저장소에 반영하여 업데이트

- GitHub 저장소에서 변경사항 확인

 

 

다음으로 GitHub(깃헙)과 연동된 PyCharm 프로젝트에서 코드나 파일에 수정이 발생할 경우 동기화시키는 방법을 알아보겠습니다.

 

깃헙은 저장소에 파일을 보관하는 기능도 있지만, 원래는 코드 버전관리에 특화되어 있기 때문에,

파일 추가/삭제 뿐만 아니라, 파일 내 코드 수정된 것도 감지하는 기능을 갖고 있어 소스코드를 편리하게 동기화하여 관리할 수 있습니다.

 

 

 

예시를 위해 먼저 로컬에서 파일을 새로 추가해보겠습니다. PyCharm에서 파일 새로 만들기를 해서 first_update라는 텍스트 파일을 만들었고, 파일 안에는 오른쪽 화면과 같이 'first update text'라는 글을 적어넣었습니다.

 

그 다음으로는 financePlot_example.py 파이썬 코드를 열어서 '#first update source code'라는 주석문을 추가하였습니다.

 

 

로컬(현재 PC)에서 리모트(깃헙 저장소)로 업데이트 하기 전 변경사항 확인을 위해, 로컬과 리모트 비교를 해보겠습니다. 

상단메뉴 'VCS - Git - Compare with Branch' 또는 화면 왼쪽의 프로젝트명에 우클릭 한 후 'Git - Compare with Branch' 를 선택하면 위와 같이 연동된 저장소의 branch를 선택하는 작은 창이 나타나는 데, 여기서 branch를 새로 만들지 않았다면 'origin/master'를 선택합니다. 

 

그러면 왼쪽 위 화면과 같이 로컬과 리모트와 차이가 발견된 파일이 표시가 됩니다. 파일이 새로 추가된 것은 녹색 글씨로 표시되고, 코드 내용이 변경된 경우 파란 글씨로 표시됩니다.

코드 수정된 파일을 우클릭한 후 'Show Diff' 메뉴를 클릭하면 오른쪽 위 화면과 같이 로컬에서 업데이트한 코드와 리모트에 있던 파일을 비교해서 보여줍니다.

 

이제 상단메뉴 'VCS - Git - Commit Directory' 또는 프로젝트 폴더를 우클릭 후 'Git - Commit Directory' 또는 화면 왼쪽 맨 끝에 세로로 써진 'Commit' 탭을 클릭하면, 프로젝트 탭 대신 Commit 탭이 나타납니다. 여기서 리모트로 업데이트할 파일을 선택하고, 하단에 텍스트 입력 창에 커밋 메시지(Commit Message)를 입력합니다. 

 

커밋 메시지는 필수 입력사항으로 아까 위에서 로컬 프로젝트를 깃헙 저장소와 연동할 때와 같이, 해당 업데이트 작업에 대한 기록 및 관리를 위한 것으로 아무렇게나 입력하기 보다는, 일련번호나 날짜 또는 업데이트 주요내용 등 구분이 되는 이름으로 지어주는 것이 좋겠습니다. 

 

어쨌든 메시지를 작성했으면 하단에 'Commit' 버튼을 누릅니다.

 

커밋 작업이 완료되면 화면 하단 탭에 위 화면과 같이 'first update commit'이라고 제가 커밋 메시지로 입력한 작업이 새롭게 업데이트 된 것을 확인할 수 있습니다.

 

 

 

이제 커밋 작업을 깃헙 저장소에 실제로 반영하기 위한 Push 명령을 실행합니다.

 

상단 메뉴 'VCS - Git - Push' 또는 프로젝트 폴더를 우클릭 후 'Git - Repository - Push' 항목을 클릭하면 위와 같은 화면이 나옵니다.

여기에서는 저장소에 반영할 커밋 작업 내용을 확인하고, 그 다음 왼쪽 위에 'origin:master'라고 적혀진 브랜치(branch)를 설정할 수 있습니다. 일반적으로는 그대로 놔둬도 되는데, 만약 현재 저장소에 변경사항을 덮어씌우지 않고 별도 버전으로 넣어놓고 싶다고 할 경우 master 자리에 새로운 이름을 적으면 됩니다.

(master는 저장소 만들 때 기본으로 설정된 브랜치 이름이라고 생각하시면 됩니다.)

 

확인이 끝났으면 우측 하단의 'Push' 버튼을 누릅니다.

 

 

 

이제 깃헙 웹사이트로 돌아와서 새로고침을 눌러보면 왼쪽 위 화면과 같이 저장소에 두 개의 파일이 'first update commit'이라는 커밋 메시지로 바뀌어있는 것을 확인할 수 있습니다. 기존에 리모트에 없었던 first update 파일이 새로 추가되었고, 소스코드 변경된 부분은 오른쪽 위 화면처럼 '#first update source code'라고 반영된 것을 확인할 수 있습니다.

(화면 왼쪽 위에 'master'라고 현재 보여드리고 있는 저장소의 브랜치 이름이 나와있습니다.)

 

 


 

4. GitHub 저장소로컬 PyCharm 프로젝트로 업데이트


- VCS - Git - Pull 실행

- 변경사항 확인

 

 

다음으로 GitHub(깃헙) 저장소에서 수정된 사항을 로컬로 업데이트하는 방법을 알아봅니다.

 

이번에는 예시로 깃헙 사이트에서 아까 추가했던 'First Update' 파일을 삭제했고, 'financePlot_Example.py'파일 내 추가했던 '#first update source code' 문장을 지우고 그 다음 줄에 '#second update source code'라는 문장을 추가하였습니다. 이 두가지 작업은 각각 'Delete first update file', 'Update financePlot_example.py'라는 커밋 메시지로 기록되어 있습니다.

 

상단메뉴 'VCS - Git - Pull' 또는 프로젝트 폴더를 우클릭 후 'Git - Repository - Pull' 버튼을 클릭하면 위와 같은 화면이 나타납니다. 로컬 프로젝트와 리모트 브랜치를 확인하시고 하단의 'Pull' 버튼을 누릅니다.

 

하단의 strategy와 옵션에서는 깃헙에서 제공하는 다양한 업데이트 옵션을 설정할 수 있는 것인데, 일단은 그냥 기본설정으로 놔둔 상태로 두셔도 됩니다.

 

 

Pull 작업이 완료되면, 위와 같이 First Update 파일이 삭제되고, 소스코드가 'first' 대신 'second'로 변경된 것을 확인할 수 있습니다. 그리고 하단 커밋 창을 보시면 깃헙에서 파일 삭제 및 업데이트 과정에서 생성한 커밋 메시지 두 개가 새롭게 추가된 것을 확인할 수 있습니다.

 


 

5. 로컬로 업데이트한 내용 취소하기


- Git 로그 패널에서 취소할 커밋 선택

- 우클릭 후 'Revert Commit' 선택

- 변경사항 확인

 

 

깃헙은 다양한 방법으로 코드의 수정내역을 관리할 수 있는 기능을 제공하고 있기 때문에,

아까 전 Pull 실행으로 이미 동기화된 로컬 프로젝트를 이전 상태로 되돌릴 수 있습니다.

 

업데이트를 취소하기 위해서는 하단의 Git 로그(Alt+9) 탭에서 중간의 커밋 로그 패널에 취소하고자 하는 커밋을 선택한 후 마우스 우클릭 - 'Revert Commit'을 선택합니다.

 

위와 같이 커밋 메시지 입력과 다시 원래대로 되돌아가는 내용을 확인할 수 있습니다. 확인 후 하단의 'Commit'버튼을 누릅니다.

 

<(좌) 업데이트 실행취소 전 / (우) 업데이트 실행취소(revert) 후>

그러면 위 화면과 같이 수정된 소스코드와 삭제된 파일이 다시 이전 단계로 되돌아간 것을 확인할 수 있습니다.

프로젝트 내용은 수정 전 상태로 돌아갔다고 하더라도 하단의 커밋 내용까지 사라지지는 않습니다. 커밋은 작업기록이기 때문에 실행 취소되었다고 삭제되지 않는 점을 참고하시면 되겠습니다.

 

 


 

6. 마무리


PyCharm에서 제공하는 GitHub과의 연동 기능은 PyCharm 자체의 기능이라기 보다는 Git의 기능을 단지 PyCharm에서 GUI로 제공하는 것이라고 보는 게 좋습니다. 그리고 GitHub 외에도 GitLab 등 유사한 서비스도 있는데, 이것도 Git을 기반으로 작동하므로 PyCharm과 연동이 가능할 것으로 생각됩니다.

 

제가 설명드린 기능은 개인 프로젝트 수준에서 쓸만한 Git의 가장 기초적인 기능을 소개드린 것으로,

좀 더 큰 프로젝트나 다른 사람과 함께 하는 프로젝트를 할 때는 Git의 훨씬 더 다양한 기능을 활용해보시는 것도 좋을 것 같습니다.