Colab과 GitHub 연동하기.

I am I·2022년 3월 20일
11
post-thumbnail

이번 글은, recoder 님의 글을 보고 배워 적용 한 뒤 저의 글로 소화하여 작성하였음을 미리 밝힙니다.


준비물

  1. 본인의 Github 주소
  2. Colab을 실행 할 본인의 Google Drive 아이디.

1. 연동하고 싶은 Github Repository 생성하기

본인의 Github에 보면, 탭이 보일 텐데, 이 중 "Repositories" 를 누릅니다.

그럼 오른쪽 상단 즈음에 "New"라고 적힌 초록색 버튼을 누릅니다.

그러면 아래 창이 뜰 텐데, 생성하고 싶은 폴더의 이름을 적고, 공개 글로할지, 비공개글로 할지 정한 후, 가급적이면 "Add a README file"에 체크를 해 준 후 "Create repository"를 눌러 생성 합니다.

  • Repository name: 생성하고싶은 폴더명(혹은 프로젝트명)
  • Description: 해당 Repositoy 메인페이지에 설명글을 작성할 수 있습니다.
  • Public: 해당 Repository를 공개적으로 설정
  • Private: 해당 Repository를 비공개적으로 설정(개인적/팀 프로젝트일 경우)
  • Add a README file: Repository 에 대한 설명글을 메인 페이지에 보여줄 수 있습니다.
  • Add a .gitignore: 필요하지 않은 파일을 업로드에서 제외할 수 있습니다.

2. Repository 접근을 위한 Access Token 생성하기

아래 과정을 따라옵니다.

  1. 오른쪽 상단의 Setting

  2. 왼쪽 메뉴들 중 가장 아래에 있는 "Developer settings"

  3. 왼쪽 메뉴들 중 "Personal access tokens"

  4. 오른쪽 상단에 "Generate new token"

  5. 단순 비밀번호 확인

  6. 아래와 똑같이 체크해준 후 토큰 생성

    ❗️[주의!] 본인의 토큰은 개인적이므로 주의해서 보관하고 노출되지 않도록 합니다.

3. Google Drive 에서 commit용 colab 생성

  • 저의 경우에는 다른 폴더들과 전혀 곂치지 않는 commit용 폴더를 생성하여 보관중 입니다.

연동할 colab 폴더는 아래에서 생성 되오니, 위의 commit용 colab은 따로 생성하시는 것을 권장드립니다. (Token 관련 보안을 이유로)

그럼에도 불구하고, 똑같이 생성하실 분은, 위 Recoder 님의 블로그 에서 언급 된, gitignore 파일 만드는 법 을 참고해 주시면 됩니다.

Commit용 colab에서 다음과 같이 작성하겠습니다.

3-1. Google drive mout하기

  • 코랩을 본인의 Google drive에 접근하게 하기 위한 코드입니다.
from google.colab import drive
drive.mount('/content/drive')

3-2. 연동 시키고 싶은 폴더 생성하기

  • 저는 Commit_Test_Folder 라는 이름의 폴더를 생성하였습니다.

3-3. Colab에서 코드를 이용하여 원하는 위치로 이동하기.

  • 본인이 연동시키고 싶은 폴더 명으로 이동하시면 됩니다.

본인이 원하는 google drive의 위치 확인 방법

  • colab 왼쪽의 폴더 모양을 눌러주시면

    폴더들이 나오는데, drive/MyDrive에 들어가면, 본인이 생성하신 폴더들이 나오는데, 그 중 원하는 폴더에 오른쪽 클릭을 하시면
    경로 복사가 있습니다. 이를 아래에 코드와 함께 붙여 넣으시면 됩니다.
cd /content/drive/MyDrive/파이썬으로_데이터_주무르기

3-4. Git clone 하기

우선 Colab에서 작성해야 할 코드는 아래와 같습니다.

!git clone https://(username):(access token)@github.com/(username)/(repository name).git
  • username: 본인의 github 아이디를 적으시면 됩니다.
  • access token: 위에 2번 스텝에서 생성하신 토큰을 붙여넣으시면 됩니다.
  • repository name: 위의 1번 스텝에서 생성하신 Repository 폴더 명을 적으시면 됩니다.

아래와 같이 나오면 1차 성공입니다.

Cloning into 'Test_Repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.

3-5. 접근 권한 갖기

여기까지 성공하셨다면, Google Colab에 본인의 GitHub 폴더가 생성되었을겁니다!

아직 기뻐하기는 이릅니다.

다시 Colab으로 돌아가 우선 저 파일로 들어가 줍니다.

cd Test_Repo

결과 값이

/content/drive/MyDrive/Commit_Test_Folder/Test_Repo

와 같이, 원하는 폴더에 있어야 합니다.

다음 Git관련 정보를 적어줍니다.

!git config --global user.email '(user email)'
!git config --global user.name '(user name)'

본인의 이메일과 아이디를 각각 적으시면 됩니다 (괄호 미포함)

4. 아무 파일 add 해보기

자, 이제 드디어 모든 준비가 끝났습니다.
여러가지 방법이 있겠지만, 구글에서 코랩파일을 하나 생성하여 commit 해 보겠습니다.

아까 원하신다는 폴더 내에 colab파일을 하나 생성해 봅시다.

자 이제 들어가서, 아무 코드나 작성 하고 save를 눌러 저장합니다.

다시 아까 3번의 Commit 코드로 들어가 줍니다.

위의 3번까지의 과정은 단 한번만 하면 되고, 앞으로 Colab 파일을 꾸준히 commit 하시려면 아래의 코드들만 돌리시면 Commit이 완료 됩니다.

  1. Google Drive 접근
from google.colab import drive
drive.mount('/content/drive')
  1. Commit을 원하는 폴더로 이동
cd /content/drive/MyDrive/Commit_Test_Folder/Test_Repo
  1. 본인임을 확인
!git config --global user.email '(user email)'
!git config --global user.name '(user name)'
  1. 폴더 add
!git add Test_code.ipynb
  • 여기서, 원하는 폴더만 commit 하고싶은 경우, 위 작성 처럼 add (원하는폴더명) 하시면 됩니다.
  • 하지만 폴더 내에 모든 파일을 commit하고싶은 경우, add --all 이라고 작성하면 됩니다.

    하지만 -all의 경우에는 위에 주의 하였듯, 공개되면 안되는 파일이 있을 경우, gitignore을 반드시 하시기를 바랍니다.

  1. commit 하기 !
!git commit -m '원하는 아무 메시지'
!git push

아래와 같이 나오면 성공입니다!

[main 6a2738b] test
 1 file changed, 1 insertion(+)
 create mode 100644 Test_code.ipynb
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 849 bytes | 212.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/shong676/Test_Repo.git
   344562f..6a2738b  main -> main

만약 실패하신 경우, 폴더의 위치나, 코랩에서

pwd

를 쳐 보신 후 현재 경로를 다시 확인하시거나, colab 세션을 껐다가 다시 켠 후 위 과정을 반복해 보시기를 바랍니다.

5. 잘 Commit 되었는지 확인.


제 깃허브에 훌륭하게 들어왔습니다!

내용에도 문제가 없군요 !

혹시 작성하신 것과 내용이 다른경우, colab파일을 저장 하신 후 다시 commit해 보시기를 바랍니다.

그럼 이제 번거롭게 GitHub에 업로드 할 필요 없이! 계속해서 업데이트를 할 수 있게 되었습니다!

잔디를 열심히 심어 봅시다!

profile
어색하고 미숙하고 불완전 하지만..

6개의 댓글

comment-user-thumbnail
2022년 6월 17일

"다시 아까 3번의 Commit 코드로 들어가 줍니다."
이 부분이 어떤 코드를 지칭하는 것인지 불명확한데,
좀 더 구체적으로 알려주실 수 있을까요?

1개의 답글
comment-user-thumbnail
2022년 7월 5일

감사합니다!! 덕분에 빠르게 연동 완료했어요!!

1개의 답글
comment-user-thumbnail
2023년 1월 30일

안녕하세요~
정리해주신 글 너무 잘봤습니다!! 덕분에 git을 혼자서 공부해보고 있습니다. 감사합니다~!!

한가지 여쭤보고 싶은게 있는데, 알려주신 글대로 쭉 해보니
colab 파일이 git에 연동된게 확인이 되었습니다. 그래서 동일 폴더에 또 다른
colab 파일을 생성하여 또 한번 해보려고 하니 오류가 나고 안되더라구요..
오류 코드는 아래처럼 뜨는데, 혹시 한개의 colab 폴더 당 한개의 파일만 git과 연동할 수 있는 걸까요? (에러 관련해서 서칭을 많이 해봤는데.. 해결을 못하여서 여쭤봅니다..)

On branch main
Your branch is ahead of 'origin/main' by 2 commits.
(use "git push" to publish your local commits)

nothing to commit, working tree clean
remote: Invalid username or password.
fatal: Authentication failed for 'https:/~~'

답글 달기