GitHub 및 원격 저장소: 클라우드에 코드 저장하기
로컬 작업에서 협업으로 전환: remote란 무엇인지, 로컬 저장소를 GitHub에 연결하는 방법, 그리고 push, pull, fetch 세 가지 명령어의 차이점을 자세히 알아보겠습니다. 특히 SSH 키를 통한 인증 설정까지 다룹니다. 이는 고용주가 여러분이 스스로 설정할 것으로 기대하는 부분이기 때문입니다.
- GitHub에서 저장소를 생성하고 로컬 프로젝트와 연결한 후 push 명령어로 변경 사항을 게시할 수 있습니다.
- fetch와 pull의 차이를 이해하고 팀 작업에서 상황에 맞게 사용할 수 있습니다.
- 비밀번호 없이 GitHub에 연결하는 SSH 인증을 설정하여 전문가처럼 작업할 수 있습니다.
Phần đầu bài giảng
왜 원격 저장소가 필요할까요?
- 로컬 저장소: 내 컴퓨터에만 있음
- 원격 저장소: 팀을 위한 클라우드 저장소
- 모든 팀원이 한곳에서 변경 사항을 보고 적용
- 인터넷을 통한 실시간 동기화
혼자 프로젝트를 진행할 때는 로컬 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
Bài giảng đầy đủ dành cho thuê bao
Còn 30 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- 왜 원격 저장소가 필요할까요?
- 로컬 저장소와 원격 저장소는 어떻게 연결될까요?
- 하나의 로컬, 여러 개의 원격
- GitHub에서 새 저장소 만들기
- README와 라이선스: 첫 커밋
- 로컬 저장소를 GitHub에 연결하기
- 저장소 클론이란 무엇인가요?
- 두 가지 클론 방법: HTTPS와 SSH
- 실습: 저장소 클론하기
- 클론 후 설정 확인
- GitHub에서 비밀번호가 불편한 이유
- SSH 키 작동 방식
- SSH 키 생성
- GitHub에 키 추가
- 클라우드에 코드 보내기: git push
- 업스트림 브랜치 설정하기
- 푸시 시 충돌 해결하기
- Git pull: 클라우드와 동기화
- Git pull의 내부 동작 방식
- Git pull 시 일반적인 문제
- Git pull이 위험할 수 있는 이유
- Git fetch: 안전한 변경 사항 다운로드
- 실습: fetch로 변경 사항 확인하기
- fetch 대신 pull을 사용하는 경우
- 다른 사람의 브랜치에 Push: 왜 프로세스가 망가지는가
- 올바른 방법: 변경을 위한 자신의 브랜치 만들기
- 조용한 재앙: pull이 변경 사항을 지울 때
- 구원의 명령어: git stash 실제 사용법
- GitHub: 코드를 위한 클라우드 저장소
- SSH 키 설정: 디지털 출입증
- 포크에서 Pull Request까지: 팀에서 작업하기
- Pull Request: 본질과 단순 Push와의 차이
- 요약 및 과제
Bài viết liên quan đến bài học này
- Git và GitHub: khác nhau thế nào và liên hệ ra sao
- git fetch và git pull: khác nhau thế nào và nên chọn cái nào
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- Kho lưu trữ Git: cách tạo bằng git init và kết nối remote
- git clone: cách sao chép kho lưu trữ từ GitHub và nơi khác
Tất cả bài giảng của khóa học
- 소개: 완전 초보에서 자신 있는 개발자로 성장하기 위한 Git
- Git가 왜 필요한가? — 취업에 왜 필수인가
- Git 설치 및 설정: 첫 실행을 위한 준비
- 첫 번째 저장소: init, add, commit과 인덱스의 마법
- 히스토리 읽기: log, diff, show 및 과거 탐색
- 브랜치: 코드의 평행 현실
- 오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법
- GitHub 및 원격 저장소: 클라우드에 코드 저장하기
- 팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
- 병합 충돌: 당황하지 말고 이해하고 해결하기
- 실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
- 고급 도구: 리베이스, 스태시, 체리픽 및 태그
- 최종 프로젝트: 실제 팀 개발 시뮬레이션