Git - 변경 수행

소개

안녕하세요, 야심차운 프로그래머 되고자 하는 분들! 오늘 우리는 Git의 흥미로운 세상으로 뛰어들어 프로젝트에서 변경을 수행하는 방법을 배우겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 명확한 설명, 많은 예제, 그리고 가끔씩 장난기 있는 이야기를 통해 여러분을 안내하겠습니다. 그러니 가상의 헬멧을 쓰고, Git 기술을 쌓는 여정을 시작해 보세요!

Git - Perform Changes

Git 기본 이해

변경을 수행하기 전에 Git에 대해 빠르게 개괄해 보겠습니다. Git은 코드의 시간 기계와도 같습니다. 변경을 추적하고, 다른 사람과 협력하며, 심지어 프로젝트의 이전 버전으로 돌아가는 기능을 제공합니다. 멋지지 않나요?

Git 워크플로우

Git에서는 일반적으로 다음 워크플로우를 따릅니다:

  1. 파일에 변경을 수행합니다
  2. 변경을 스테이지합니다
  3. 변경을 커밋합니다
  4. (원격 레포지토리와 함께 작업 중이면) 변경을 푸시합니다

이제 이 단계들을 하나씩 분해해 보겠습니다.

파일에 변경을 수행하는 것

우리의 Git 여정의 첫 번째 단계는 실제로 프로젝트 파일에 변경을 수행하는 것입니다. 이는 새로운 코드를 추가하거나, 기존 코드를 수정하거나, 심지어 파일을 삭제하는 것을 포함할 수 있습니다. 간단한 예제로 시작해 보겠습니다.

가정해 봅시다, hello.py라는 파일이 다음과 같은 내용을 가지고 있다고 합니다:

print("Hello, World!")

이제 우리는 이를 좀 더 개인화하고 싶어합니다. 다음과 같이 변경할 거예요:

name = "Alice"
print(f"Hello, {name}!")

좋아요! 우리는 첫 번째 변경을 했습니다. 하지만 Git이 이 변경을 어떻게 알까요?

레포지토리 상태 확인

우리가 한 변경을 확인하려면 git status 명령어를 사용할 수 있습니다. 이는 Git에게 "이제 무엇이 새로운 거야?"라고 묻는 것과 같습니다.

git status

이 명령어를 실행하면 다음과 같은 결과를 볼 수 있습니다:

On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified:   hello.py

no changes added to commit (use "git add" and/or "git commit -a")

Git은 우리가 hello.py를 수정했지만 아직 이 변경을 스테이지하지 않았음을 알려줍니다.

변경을 스테이지하는 것

이제 우리는 변경을 다음 커밋에 포함시키고 싶은지 Git에게 알려야 합니다. 이 과정을 스테이지링이라고 합니다.

hello.py에 대한 변경을 스테이지하려면 git add 명령어를 사용합니다:

git add hello.py

모든 변경을 한 번에 스테이지하려면 다음과 같이 합니다:

git add .

Pro tip: 점 (.)은 "현재 디렉토리의 모든 것"을 의미합니다.

스테이지한 후 다시 git status를 실행하면 다음과 같이 보입니다:

On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified:   hello.py

좋아요! 우리의 변경은 이제 스테이지되어 커밋할 준비가 되었습니다.

변경을 커밋하는 것

커밋은 프로젝트의 특정 시점에서의 스냅샷을 만드는 것입니다. 이는 "이 버전의 프로젝트를 기억하고 싶다"는 말과 같습니다.

스테이지된 변경을 커밋하려면 git commit 명령어를 사용합니다:

git commit -m "인사말을 더 개인화했습니다"

-m 플래그는 커밋 메시지를 명령줄에서 직접 추가할 수 있게 해줍니다. 항상 명확하고 설명적인 커밋 메시지를 작성하려고 노력하세요. 미래의 당신(그리고 팀원들)은 당신을 감사할 것입니다!

커밋 이력 보기

모든 커밋을 확인하려면 git log 명령어를 사용합니다:

git log

이 명령어는 가장 최근의 커밋부터 목록을 보여줍니다:

commit 1234567890abcdef1234567890abcdef12345678 (HEAD -> main)
Author: 당신의 이름 <[email protected]>
Date:   Mon Jun 12 10:00:00 2023 +0000

인사말을 더 개인화했습니다

commit abcdef1234567890abcdef1234567890abcdef12
Author: 당신의 이름 <[email protected]>
Date:   Sun Jun 11 09:00:00 2023 +0000

최초 커밋

원격 레포지토리에 변경을 푸시하는 것

원격 레포지토리(예: GitHub)와 함께 작업 중이라면, 변경을 다른 사람들과 공유하고 싶을 것입니다. 이때 git push 명령어를 사용합니다:

git push origin main

이 명령어는 'main' 브랜치의 'origin' 원격 레포지토리로 커밋을 푸시합니다.

일반 Git 명령어

여기에서 다룬 Git 명령어의 간단한 표를 제공합니다:

명령어 설명
git status 레포지토리 상태 확인
git add <file> 특정 파일의 변경을 스테이지
git add . 모든 변경을 스테이지
git commit -m "message" 스테이지된 변경을 커밋
git log 커밋 이력 보기
git push origin <branch> 커밋을 원격 레포지토리로 푸시

결론

이제 여러분은 Git으로 변경을 수행하는 기본을 배웠습니다. 연습이 완성입니다. 두려워하지 마시고 실험하고 실수를 하세요 - 그게 우리가 배우는 방법입니다!

저의 교사 생활 동안, 학생들이 Git 초보자에서 버전 컨트롤 마스터로 성장하는 것을 목격했습니다. 제가 가장 좋아하는 순간 중 하나는 학생이 이렇게 외친 순간이었습니다: "Git은 비디오 게임의 저장 포인트와도 같아, 하지만 코드에 대한 거야!" 그리고 아시나요? 그들은 정말로 옳았습니다!

그러니 앞으로 나아가 변경을 만들고, 자주 커밋하고, 코드가 첫 번째 시도에서 컴파일되기를 바라며(하지만 그렇지 않으면 디버깅을 하세요!), 행복하게 코딩하세요. 다음 강의에서는 Git의 더 많은 마법을 탐구하겠습니다!

Credits: Image by storyset