ตัวอย่างบทเรียน

GitHub 및 원격 저장소: 클라우드에 코드 저장하기

로컬 작업에서 협업으로 전환: remote란 무엇인지, 로컬 저장소를 GitHub에 연결하는 방법, 그리고 push, pull, fetch 세 가지 명령어의 차이점을 자세히 알아보겠습니다. 특히 SSH 키를 통한 인증 설정까지 다룹니다. 이는 고용주가 여러분이 스스로 설정할 것으로 기대하는 부분이기 때문입니다.

remote origin push / pull / fetch
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • GitHub에서 저장소를 생성하고 로컬 프로젝트와 연결한 후 push 명령어로 변경 사항을 게시할 수 있습니다.
  • fetch와 pull의 차이를 이해하고 팀 작업에서 상황에 맞게 사용할 수 있습니다.
  • 비밀번호 없이 GitHub에 연결하는 SSH 인증을 설정하여 전문가처럼 작업할 수 있습니다.

จุดเริ่มต้นของบทเรียน

왜 원격 저장소가 필요할까요?

  • 로컬 저장소: 내 컴퓨터에만 있음
  • 원격 저장소: 팀을 위한 클라우드 저장소
  • 모든 팀원이 한곳에서 변경 사항을 보고 적용
  • 인터넷을 통한 실시간 동기화

혼자 프로젝트를 진행할 때는 로컬 Git 저장소로 충분합니다. 하지만 팀 작업이 시작되면 공유 공간이 필요해집니다. 원격 저장소는 모든 팀원이 접근할 수 있는 코드의 중앙 저장소 역할을 합니다. 마치 구글 문서처럼 모든 변경 사항이 실시간으로 동기화되는 것과 비슷합니다. 동료의 변경 사항을 확인하고, 풀 리퀘스트를 통해 코드를 논의하며, 여러 기능을 병렬로 개발할 수 있습니다. 원격 저장소가 없었다면 팀 개발은 압축 파일을 주고받고 파일 버전이 끝없이 생겨나는 혼란으로 이어졌을 것입니다.

로컬 저장소와 원격 저장소는 어떻게 연결될까요?

  • Origin: 기본 원격 저장소 이름
  • Push: 서버로 변경 사항 전송
  • Pull: 서버에서 변경 사항 가져오기
  • 각 저장소는 독립적이며 전체 히스토리 포함

내 컴퓨터의 로컬 저장소는 push와 pull이라는 두 가지 핵심 명령어를 통해 원격 저장소와 데이터를 주고받습니다. 기본적으로 주요 원격 저장소는 origin이라고 불립니다. 하지만 이것은 단순한 파일 복사본이 아닙니다. 각 저장소는 독립적이며 전체 변경 내역을 가지고 있습니다. 로컬에서 커밋을 만들어도 push 명령어로 전송하기 전까지는 내 컴퓨터에만 남아 있습니다. 동료가 코드를 업데이트하면 pull 명령어로 가져와서 내 작업을 동기화할 수 있습니다.

하나의 로컬, 여러 개의 원격

  • 여러 원격 저장소를 연결할 수 있음
  • Origin: GitHub에 있는 나의 포크
  • Upstream: 원본 프로젝트 저장소
  • 변경 사항을 쉽게 동기화

프로젝트는 동시에 여러 원격 저장소에 연결될 수 있습니다. 예를 들어, origin은 GitHub에 있는 나의 포크이고, upstream은 원본 프로젝트의 저장소입니다. 이러한 구성은 내 복사본에 변경 사항을 적용하면서도 원본 소스에서 업데이트를 쉽게 가져올 수 있게 해줍니다. 특히 오픈소스 프로젝트에서 내 포크를 최신 상태로 유지해야 할 때 유용합니다. 언제, 어떤 변경 사항을 upstream에서 origin으로 가져올지는 여러분이 결정합니다. 이제 원격 저장소 작업 방식을 이해했으니, GitHub에 직접 저장소를 만들어 보겠습니다.

# 새로운 원격 저장소 추가
git remote add upstream https://github.com/original/project.git

# 모든 원격 저장소 목록 확인
git remote -v

# upstream에서 로컬 브랜치로 변경 사항 가져오기
git fetch upstream

git checkout main
git merge upstream/main

# 변경 사항을 origin으로 보내기
git push origin main

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 30 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. 왜 원격 저장소가 필요할까요?
  2. 로컬 저장소와 원격 저장소는 어떻게 연결될까요?
  3. 하나의 로컬, 여러 개의 원격
  4. GitHub에서 새 저장소 만들기
  5. README와 라이선스: 첫 커밋
  6. 로컬 저장소를 GitHub에 연결하기
  7. 저장소 클론이란 무엇인가요?
  8. 두 가지 클론 방법: HTTPS와 SSH
  9. 실습: 저장소 클론하기
  10. 클론 후 설정 확인
  11. GitHub에서 비밀번호가 불편한 이유
  12. SSH 키 작동 방식
  13. SSH 키 생성
  14. GitHub에 키 추가
  15. 클라우드에 코드 보내기: git push
  16. 업스트림 브랜치 설정하기
  17. 푸시 시 충돌 해결하기
  18. Git pull: 클라우드와 동기화
  19. Git pull의 내부 동작 방식
  20. Git pull 시 일반적인 문제
  21. Git pull이 위험할 수 있는 이유
  22. Git fetch: 안전한 변경 사항 다운로드
  23. 실습: fetch로 변경 사항 확인하기
  24. fetch 대신 pull을 사용하는 경우
  25. 다른 사람의 브랜치에 Push: 왜 프로세스가 망가지는가
  26. 올바른 방법: 변경을 위한 자신의 브랜치 만들기
  27. 조용한 재앙: pull이 변경 사항을 지울 때
  28. 구원의 명령어: git stash 실제 사용법
  29. GitHub: 코드를 위한 클라우드 저장소
  30. SSH 키 설정: 디지털 출입증
  31. 포크에서 Pull Request까지: 팀에서 작업하기
  32. Pull Request: 본질과 단순 Push와의 차이
  33. 요약 및 과제

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. 소개: 완전 초보에서 자신 있는 개발자로 성장하기 위한 Git
  2. Git가 왜 필요한가? — 취업에 왜 필수인가
  3. Git 설치 및 설정: 첫 실행을 위한 준비
  4. 첫 번째 저장소: init, add, commit과 인덱스의 마법
  5. 히스토리 읽기: log, diff, show 및 과거 탐색
  6. 브랜치: 코드의 평행 현실
  7. 오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법
  8. GitHub 및 원격 저장소: 클라우드에 코드 저장하기
  9. 팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
  10. 병합 충돌: 당황하지 말고 이해하고 해결하기
  11. 실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
  12. 고급 도구: 리베이스, 스태시, 체리픽 및 태그
  13. 최종 프로젝트: 실제 팀 개발 시뮬레이션