변경 이력을 남기며 협업하기

본인 사본을 만들어 실행·수정·기록하세요.

실습 목적

수정 내용을 Commit으로 기록하고, PR에서 변경을 검토한 뒤 Merge했을 때 main에 반영되는 과정을 확인합니다. 이번 실습은 본인 Repository에서 수행하며, 동료 Repository의 Fork·PR은 선택 실습입니다.

외부 기여자의 수정 제안 사례와 각 단계가 필요한 이유는 학습자료의 설명을 참고하세요.

실습 순서와 이유: 먼저 Colab의 임시 Repository에서 로그인·권한 설정 없이 파일 수정·Commit·Branch의 관계를 확인합니다. 이어서 GitHub 웹에 별도 저장소를 만들어 PR의 검토와 Merge를 연습합니다. Colab에서 만든 저장소를 업로드하는 과정이 아니라, Git의 변경 기록을 이해한 뒤 GitHub의 협업 기능을 사용하는 구성입니다.

1. 내 작업 공간에서 Git 연습하기

Colab의 임시 폴더에서 Commit·Branch를 연습한 뒤, 아래 순서로 GitHub에서 PR·Merge를 진행하세요.

A. 기준 예제 · 먼저 읽고 실행

import tempfile, pathlib, subprocess
repo=pathlib.Path(tempfile.mkdtemp(prefix='course-git-'))
def git(*args):
    return subprocess.check_output(['git','-C',str(repo),*args],text=True,stderr=subprocess.STDOUT)
git('init','-b','main');git('config','user.name','Student Example');git('config','user.email','example@example.invalid')
(repo/'README.md').write_text('# Practice\nBaseline\n')
git('add','README.md');git('commit','-m','Add baseline')
git('switch','-c','practice-change')
(repo/'README.md').write_text('# Practice\nBaseline\nMy change\n')
print(git('diff'));git('add','README.md');git('commit','-m','Describe one change')
print(git('log','--oneline','--all','--graph'))

B. 직접 수행

Branch는 별도로 변경을 기록하는 작업 흐름입니다. 이번에는 기본 Branch인 main에서 practice를 만들어 수정합니다. Pull Request(PR)는 이 변경을 main에 합치기 전에 검토해 달라는 요청이고, Merge는 검토한 변경을 실제로 합치는 작업입니다. PR을 만드는 것만으로 main이 바뀌지는 않습니다.

  1. Colab에서 변경 이력 연습: 로컬 예제의 문장을 한 줄 수정하고 git diff → add → commit → log를 직접 반복하세요.

  2. GitHub에 연습 Repository 만들기: README를 포함한 개인 연습 Repository를 만드세요.

  3. Branch에서 수정하고 Commit하기: 새 Branch practice를 만들고 README에 이번 주 배운 내용을 추가하여 Commit하세요.

  4. PR 검토 후 Merge하기: practice → main의 Pull Request를 열고 Files changed에서 변경을 검토한 뒤 Merge하세요.

  5. 변경 전후 설명하기: 조교 또는 동료에게 두 Branch의 역할과 Merge 전후 차이를 설명하세요.

  6. 결과 기록하기: Repository URL, Commit 이력, PR 변경 내용과 Merge 완료 화면을 Notebook에 기록하세요.

각 단계에서 변경이 어느 Branch에 기록되어 있는지 확인하세요. PR을 열었을 때와 Merge했을 때 main의 내용이 어떻게 다른지 비교합니다.

# ✍ 직접 작성: 이 셀 아래에 본인의 코드를 추가하세요.
# 코드가 길어지면 Code Cell을 추가해도 됩니다.

C. 직접 기록 · 이 Text Cell을 더블클릭해서 수정

변경 이력 정리

앞에서 수행한 파일 수정·Commit·PR·Merge를 다시 보고 아래 내용을 정리하세요. 별도 Repository나 PR을 세 개 더 만들 필요는 없습니다.

단계 확인할 것 내 기록
수정·Commit 무엇을 바꾸었고 어떤 메시지로 기록했나요? ⟦직접 입력⟧
PR 변경 출발 Branch와 합칠 대상 Branch는 무엇인가요? ⟦직접 입력⟧
Merge main에 반영된 내용과 Commit 이력은 어디서 보이나요? ⟦직접 입력⟧
# ✍ 반복 실험 코드

선택 실습 · Fork와 Pull Request

함께 연습할 동료의 공개 Repository가 있을 때 진행하세요.

  1. 동료의 Repository를 Fork하고, 본인의 Fork에서 Branch를 만드세요.
  2. README.md의 설명 한 문장을 고친 뒤 Commit하고 Push하세요.
  3. 원본 Repository를 대상으로 Pull Request를 열고, 변경 이유를 한 문장으로 적으세요.
  4. 노트북의 Text Cell에 Pull Request URL과 변경한 문장을 남기세요. 원본 Repository에 직접 Push할 권한이 없어도 변경을 제안할 수 있는 이유를 설명하세요.

저장·제출

본인 Drive에 Notebook을 저장하세요.

수정한 내용, Commit·Pull Request·Merge 이력, 각 단계에서 한 일을 설명한 메모를 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.

GitHub 협업 결과는 저장소·Branch·PR의 변경 내용과 Merge 이력이 보이는 캡처로 남기세요. 인증 정보는 포함하지 않습니다. Notebook은 연습·기록용입니다.