[리눅스 쉽게 설명하기] 리눅스섬의 피터팬 #3 Git 대모험
에피소드 20: 버전 관리의 비밀 📚
리눅스 섬에서 돌아온 피터팬은 웬디에게 버전 관리에 대해 들려주었어요.
"웬디, 우리가 문서를 쓰면서 변경하는 모든 내용을 기록하고 관리하는 게 버전 관리야. 마치 책을 쓰면서 수정하고 개선하는 것처럼 말이야!" 📖
웬디는 버전 관리의 중요성을 깨달았어요. 변경 내용을 추적하고, 실수를 되돌릴 수 있으며, 협업할 때 매우 유용하죠!
에피소드 21: Git, 버전 관리의 마법사 🧙♂️
그때 피터팬이 Git이라는 마법사를 소개했어요. Git은 변경 내용을 사진처럼 기록하고, 데이터를 안전하게 지켜주는 버전 관리 시스템이랍니다.
"Git은 우리의 작업을 단계별로 기록해줘. 작업 폴더, 스테이징 에어리어, 저장소로 나뉘어 있지." 🗃️
실습:
git init
으로 저장소를 만들고,git config
으로 사용자 정보를 설정해보세요!
에피소드 22: 변경 사항을 기록하는 마법 📸
피터팬과 웬디는 Git으로 첫 번째 프로젝트를 시작했어요. 피터팬이 파일을 만들고 수정하자, Git이 변경 사항을 알아챘습니다.
"변경된 파일은 'modified' 상태가 되는 거야. 이걸 스테이징 에어리어에 추가하려면 git add
를 사용하는 거지!" 📝
git status
로 현재 상태를 확인하고, git add
로 스냅샷을 찍어 스테이징 에어리어로 보냈어요.
실습: 파일을 만들고 수정해보세요.
git status
로 상태를 확인하고,git add
로 스테이징 해보세요.
에피소드 23: 역사를 만드는 커밋 🌿
스테이징된 변경 사항을 Git 저장소의 역사로 남기려면 '커밋'을 해야 해요.
"커밋은 Git 저장소에 영구적인 기록을 남기는 거야. 마치 나무의 성장 과정을 사진으로 찍듯이 말이지." 📸
git commit -m "메시지"
라는 주문으로 나무의 성장을 기록했어요. 이제 git log
로 역사를 볼 수 있게 되었죠.
실습:
git commit -m "First commit"
으로 첫 커밋을 만들어보세요.git log
로 커밋 내역을 확인해보세요.
에필로그: Git 마스터로 🎓
피터팬과 웬디는 Git을 익히면서 버전 관리의 진정한 가치를 깨달았어요. 이제 변경 내용을 체계적으로 관리하고, 실수를 되돌리며, 협업할 수 있게 된 거예요!
"우리도 Git 마스터가 된 것 같아. 이제 더 큰 모험을 떠날 수 있겠어!" 🚀
Git의 마법 같은 능력으로 무장한 피터팬과 웬디. 앞으로 어떤 신나는 프로젝트를 만들어 낼지 기대되네요!
여러분도 Git의 세계로 모험을 떠나볼까요? 코드의 역사를 만들고, 협업의 마법을 경험할 수 있을 거예요! 🪄
좋아요, 이제 피터팬과 웬디와 함께 Git의 핵심 개념을 배웠네요! 버전 관리의 중요성과 Git이 어떻게 변경 내용을 추적하고 기록하는지 알게 되셨죠?
이제 직접 Git을 사용해보면서 실습해볼 차례예요. 아래 실습 과제를 따라해보세요!
실습 과제: Git으로 나만의 이야기 만들기 📝
터미널을 열고 새로운 디렉토리를 만드세요.
mkdir my-story cd my-story
Git 저장소를 초기화하세요.
git init
story.txt
파일을 만들고 여러분만의 이야기를 써보세요.echo "Once upon a time..." > story.txt
변경 사항을 확인하고 스테이징 해보세요.
git status git add story.txt
첫 번째 커밋을 만드세요.
git commit -m "Begin my story"
이야기를 더 추가하고, 변경 사항을 커밋해보세요.
echo "A brave hero started a journey." >> story.txt git add story.txt git commit -m "Add hero's journey"
git log
로 여러분의 이야기 커밋 내역을 확인해보세요.
와, 여러분만의 Git 이야기가 만들어졌네요! 이렇게 Git으로 프로젝트를 관리하다 보면 변경 내역을 추적하고 관리하기가 훨씬 수월해질 거예요.
Git에는 더 많은 기능과 협업을 위한 워크플로우들이 있답니다. 앞으로도 계속 Git의 세계를 탐험하면서 버전 관리의 마법사가 되어보아요! 🧙♂️✨
에피소드 24: 시간을 거슬러 🕰️
피터팬과 웬디는 Git을 마스터하고 나자 시간여행을 하듯 코드의 역사를 탐험할 수 있게 되었어요.
"웬디, 우리가 이전에 작성한 코드로 돌아갈 수 있대!" 🪄
git checkout
이라는 마법 주문으로 이전 커밋으로 이동할 수 있게 된 거죠. 체크섬만 알면 어떤 시점으로든 갈 수 있어요.
실습:
git log
로 이전 커밋의 체크섬을 확인하고,git checkout 체크섬
으로 그 시점으로 이동해보세요.
에피소드 25: 변경 사항 되돌리기 1 🔙
그런데 가끔 실수로 코드를 잘못 고치기도 했어요. 피터팬은 변경 사항을 되돌리는 법을 배웠어요.
먼저 스테이징하지 않은 변경 사항은 git checkout -- 파일명
으로 되돌릴 수 있었죠.
실습: 파일을 수정한 뒤
git checkout -- 파일명
을 해보세요. 수정 사항이 사라질 거예요!
에피소드 26: 변경 사항 되돌리기 2 ⏪
이번에는 스테이징했던 변경 사항을 취소해야 했어요.
"스테이징을 취소하려면 git reset HEAD 파일명
을 사용하면 돼!" 🎬
스테이징은 취소됐지만, 변경 내용은 그대로 남아있었죠.
실습: 파일을 수정하고
git add
로 스테이징한 뒤,git reset HEAD 파일명
으로 취소해보세요.
에피소드 27: 커밋 되돌리기 🔄
가끔은 커밋을 되돌려야 할 때도 있었어요.
"최신 커밋을 취소하려면 git reset HEAD^
를 사용해. 커밋도 사라지고 파일도 이전 상태로 돌아가."
그런데 커밋을 남기고 싶다면 git revert 커밋체크섬
을 쓰면 되는 거예요. 되돌리는 내용도 히스토리에 남게 되죠.
실습: 커밋을 하고
git reset HEAD^
로 취소해보세요. 그 다음git revert 커밋체크섬
도 해보고 어떤 차이가 있는지 살펴보세요.
에피소드 28: 최신 커밋 메시지 수정하기 📝
때로는 커밋 메시지에 오타가 있었어요. 웬디가 git commit --amend
를 알려줬죠.
"이걸 사용하면 마지막 커밋 메시지를 수정할 수 있어!"
에필로그: 과거와 현재를 넘나드는 Git 🌀
피터팬과 웬디는 이제 자유자재로 Git의 시간을 넘나들 수 있게 되었어요. 과거의 실수를 고치고, 더 나은 코드를 위해 노력할 수 있게 된 거죠.
"Git은 우리에게 시간 여행의 힘을 줬어. 과거를 바꿀 순 없지만, 그걸 통해 더 나은 미래를 만들 수 있어." 🔮
Git을 통해 코드의 역사를 다스리는 법을 배운 피터팬과 웬디. 앞으로 그들이 만들 프로젝트가 더욱 기대되네요!
여러분도 Git의 시간 조종 능력을 손에 넣어보세요. 코드의 과거와 현재를 자유롭게 탐험할 수 있을 거예요! ⌛
좋아요, 피터팬과 웬디가 Git의 되돌리기 기능으로 시간 여행을 하는 법을 배웠어요. 🕰️✨
이제 여러분 차례예요. 직접 실습하면서 되돌리기 주문을 익혀볼까요?
실습 과제: 시간을 되감아보아요! 🕑
먼저 이전 실습에서 만든 my-story
디렉토리로 돌아가 볼까요?
터미널에서
my-story
디렉토리로 이동하세요.cd my-story
story.txt
파일을 열고, 내용을 수정해보세요.echo "Suddenly, a dragon appeared!" >> story.txt
변경 사항을 확인하고 스테이징 해보세요.
git status git add story.txt
커밋을 만드세요.
git commit -m "Add dragon to story"
앗, 용이 너무 일찍 등장했네요! 변경 사항을 되돌려 볼까요?
git reset HEAD^ --hard
파일의 내용을 확인해보세요. 용이 사라졌나요?
cat story.txt
다시 용을 등장시켜 볼까요? 이번엔
git revert
를 사용해 볼 거예요.git revert HEAD
git log
를 확인해보세요. revert 커밋이 생겼죠?파일의 내용도 확인해보세요.
cat story.txt
어떤가요? git reset
과 git revert
의 차이를 느껴보셨나요? 🤔
git reset
은 커밋을 없었던 일로 만들어버리지만, git revert
는 되돌리는 내용을 새로운 커밋으로 남긴답니다. 상황에 맞게 현명하게 사용하는 것이 중요해요!
Git의 되돌리기 기능을 연습하다 보면 실수를 두려워하지 않고 더 대담하게 코드를 작성할 수 있게 될 거예요. 그것이 바로 버전 관리의 마법이랍니다! 🎩✨