이 글은 20.09.30 ~ 20.10.04 DSC Sookmyung Git,GitHub Mission 이후
2020.10.05 에 진행된 코어멤버 하연, 나현님의 'Git,GitHub 시작하기' 세션을 바탕으로 작성된 블로그 포스팅입니다.
새 창에서 열기 (발표자 노트를 참고하실 수 있습니다)
Git, GitHub 시작하기
- Git 이란?
- Git 의 구조
- 혼자 써보는 Git, GitHub
- 협업하며 쓰는 Git, GitHub
- GitHub 의 유용한 서비스
1. Git 이란?
: Distributed Version Control System
Git은 분산 버전 관리 소프트웨어입니다. GitHub는 Git을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스입니다. 즉, GitHub는 Git의 원격저장소를 만들고 관리할 수 있도록 해주는 많은 서비스 중 대중적으로 쓰이는 서비스입니다.
- Version Control (버전관리) : 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템. 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정내용 비교 가능, 누가 문제를 일으켰는지 추적 가능, 누가 언제 만들어낸 이슈인지 파악 가능, 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구 가능.
- Git은 주로 소프트웨어의 버전관리를 위한 툴
2. Git 의 구조
로컬저장소(작업하는 내 컴퓨터)에서 Git을 간단하게 보면 이런 구조입니다.
- Working Directory : 쉽게 말해 내가 작업하는 공간
- Repository : Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳(.git 폴더)
- Commit : 어떤 순간의 작업공간, Working Directory의 상태를 저장한 것. 'commit 한다'='working directory의 모든 파일과 파일의 데이터를 사진 찍듯이 스냅샷을 찍어 저장소에 저장하기'
Staging Area가 중간에 있어서 Working Directory 안에 있는 커밋이 필요 없는 파일들을 포함하지 않도록 할 수 있고, 변경사항 중 일부만 스테이징해서 커밋할 수 있습니다.
3. 혼자 써보는 Git, GitHub
- git 저장소 만들기 : git init
- working directory 상태 확인 : git status
- 파일 staging : git add [파일명]
- 한 줄로 commit : git commit -m “[커밋메시지]”
- 변경사항 비교하기 : git diff
- 커밋 로그 확인하기 : git log
- GitHub에 원격 repository 생성하기
- 원격저장소 연결하기 : git remote add [원격저장소명] [원격저장소주소]
- 연결된 원격저장소 설정 보기 : git remote -v
- 원격저장소에 푸시하기(최초) : git push [원격저장소명] [브랜치명]
- 브랜치 만들기 : git branch [브랜치명]
- 브랜치로 이동하기 : git checkout [브랜치명]
- 원격저장소에 브랜치 푸시 : git push --set-upstream [원격저장소명] [브랜치명]
- 브랜치 merge : git merge [브랜치명]
- 로그 기록 그래프로 확인하기 : git log --graph
4. 협업하며 쓰는 Git, GitHub
Pull Request 는 내가 변경한 내용에 대해 같이 개발하는 사람들에게 알려주고 코드를 리뷰받고 main 브랜치에 merge 해도 되는지 묻는 것이라고 볼 수 있습니다. 저장소를 로컬에서 브랜치 따서 파일을 변경하고 커밋하면 GitHub 웹에서 Pull Request 하라는 노란 팝업이 뜹니다.
5. GitHub 의 유용한 서비스
GitHub 에는 프로젝트를 관리하는데 유용한 서비스가 있습니다. 개발을 할 떄, 특히 여러 명이서 개발을 할 때는 프로젝트를 관리하는 문서나 보드가 필요한데요. GitHub 에서는 project 탭에서 이런 기능을 제공합니다. issue 관리, 일정 관리, 코드리뷰, 버그 리포트 등을 할 수 있습니다.
'GDSC Sookmyung 활동 > Speaker Session & Hands on Workshop' 카테고리의 다른 글
[Git/GitHub Session] Git 시작하기 (0) | 2021.09.27 |
---|---|
[Clean Code] 가독성 좋은 코드 작성 팁 (0) | 2021.05.03 |
[Docker] Docker로 배포하기 (0) | 2021.03.27 |
[Algorithm]C++로 알고리즘 시작하기 (0) | 2021.03.12 |
[Git/GitHub] 2. branch (0) | 2021.02.23 |