* 개인적으로 학교 학회 세미나를 위해 만들어진 자료입니다
먼저 Git 을 설치해야해요. 윈도우/맥 버전 따로 참고하세요!
윈도우 환경에서 깃 설치하기
https://coding-factory.tistory.com/245
맥 환경에서 깃 설치하기
https://velog.io/@wijoonwu/Mac-OS-%EC%97%90%EC%84%9C-Git-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0
Git 학교인증으로 PRO사용하기
Git education 페이지에 들어가서 오른쪽 상단에 benefits 을 클릭하고
Git student benefits를 선택해서
깃허브 사이트 로그인을 하고 아래 내용을 작성해주면 됩니다.
학교 이메일을 사용해서 인증하고
깃허브 용도는 Education 이라고 작성해주세요
여기까지 하면 https://github.com/settings/emails 여기에서 이메일 인증을 확인할 수 있습니다
이메일 인증이 확인되면 인증된 학교 이메일을 선택하고 submit your information 을 눌러주면
학교 인증이 완료됩니다.
학교인증으로 받을 수 있는 혜택은 https://gongmeda.tistory.com/4 이곳에 잘 나와있네요.
대표적으로 무제한 개인저장소, 간지나는 PRO 딱지가 프로필에 붙는 게 있을 것같아요!
Git이 왜 필요한가요?🤔
첫번째로 버전관리의 측면에서 생각해봅시다.
서비스를 개발하거나 운영하는 과정에서는 수정이 많이 필요할 거예요.
(더하기, 빼기, 복원하기, 과거내역확인하기 등..)
그렇기 때문에 업데이트를 하기 전의 코드들도 중간중간 저장해둘 필요가 있어요.
개발자가 아니라면 220405_진짜마지막.zip 이런식으로 파일들의 업데이트를 관리할 수 있겠죠.
하지만 코드를 많이 다뤄야하는 개발자들에겐 이런 방법은 너무 용량이 크고 번거로워요.
두번째로는 협업의 측면 입니다.
규모가 있는 프로젝트를 하면 여러명의 개발자들이 참여할 거예요.
이 개발자들은 각자 역할을 분담해서 작업하고, 파일을 수정하게 되겠죠.
이 때 서로 코드를 공유해야할 일이 있을텐데
이메일로 공유하거나, 클라우드에 올렸다가 내려받았다가 하는 과정은 꽤나 힘든 작업일거예요.
누가 어디를 어떻게 뭘 건드렸는지 파악도 안될 뿐더러
버전별로 백업을 못해두는 것도 문제가 될 것같아요.
하지만...! Git으로는 이런 문제점들을 모두 해결할 수 있어요🤗
Git 이란?
깃(Git)은 분산 버전관리 시스템으로, 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들간에 파일에 대한 작업을 조율하는데 사용되는 프로그램입니다.
즉 여러명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스코드를 관리하는데에 주로 사용돼요.
이번 세미나에서는 아주 기초적인 Git의 주요 기능(Commit, Clone)을 다뤄볼게요.
Github는 뭔가요?🤔
Git에 대해서는 간단하게 알아봤어요.
Github에 올리기 위한 도구 라고 할 수 있겠네요.
그럼 Github는 뭘까요?
Git은 버전관리를 위한 소프트웨어
Github는 git으로 저장돼서 원격전송된 파일들이 저장되는 공간을 제공하는 서비스(네트워크 상의 작업공간)
라고 할 수 있어요.
쉽게 말하면 Git 은 영상을 찍는 앱이고, Github는 그 영상들을 올리는 유튜브같은 서비스 인 셈이에요.
알아둬야 할까요?
당장 무언가 개발을 하지 않더라도, 미리 익숙해지는 것을 추천해요.
2학년 학부 과정중에 [오픈소스SW 및 실습] 에서 깃허브에 대해서 배우고
개인적으로나, (특히) 협업 프로젝트를 진행할 때에는 쓰이지 않을 수가 없어요.
그렇게 올린 프로젝트를 통해서 자신의 깃허브를 포트폴리오로 사용하는 경우도 많은 것같아요!
또한 저는 강의를 들으면서 짠 코드들을 정리하는 공부기록용으로도 사용하기도 해요.
그리고 커밋을 하면 아래 사진처럼 날짜에 기록이 남습니다.
진해질 수록 많은 커밋을 했다는 건데, 초록색이어서 보통 잔디🌱를 심는다고 많이들 해요!
Commit(커밋) : 현재 변경된 작업상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
Git 커맨드 라인 명령어 소개
cd (폴더 디렉토리)
폴더 디렉토리에 들어가는 명령어
git init
깃 저장소로 초기화. git init을 치면 .git이라는 숨김폴더가 생김. 이 폴더에 모든 수정내역들이 저장됨.
git add .
업로드할 파일을 추가한다는 의미.(정확히는 staging 영역에 변경내용을 추가한다는 의미)
add 뒤에 . 을 쓰면 현재 디렉토리의 모든 변경내용이 staging area에 등록되고
특정 파일을 입력하면 해당 파일만 staging area에 등록할 수 있음.
git status
어떤 파일이 추가, 수정되었는지 디렉토리의 상태를 확인. 빨간색으로 뜨는 글씨는 업데이트가 아직 안된 사항을 의미
git commit -m "(작업수행내용)"
staging area에 있는 변경내용들을 묶어주면서 무엇을 작업했는지(수정, 추가, 삭제 등) 작업수행내용을 써주기
깃에서 가장 중요한 명령어!
git push
지금까지의 사항을 깃허브 사이트에 올리기
(로컬 컴퓨터에서 서버로 올리는 개념)
git remote add origin (깃주소)
어느 레포지터리에 올릴 건지 주소 쓰기(정확히는 레포지토리를 이 폴더의 origin 이라는 이름의 원격 저장소로 저장한다 라는 의미. origin은 기본값과도 같음.)
git pull
서버 저장소에서 최신버전을 pull 해서 데이터를 가져오는 개념. 최신 코드로 업데이트 할 수 있음.
git clone
서버 저장소에 있는 데이터를 로컬 컴퓨터로 복사해서 그대로 가져옴.
[커밋 실습] Github 에 파일 올리기
자신의 깃허브에 들어가서 New 를 클릭하면 New Repository 가 생깁니다.
원하는 레포지터리의 이름을 작성하고 Create repository 를 클릭
(Public 과 Private 중에 우리는 Public으로 진행합니다)
올리고 싶은 파일이 들어있는 폴더 안에서
오른쪽 마우스 -> git bash 클릭
차례대로 명령어를 쳐주면 됩니다. 명령어를 하나 치고나서는 enter(줄바꿈) 하기!
git init
(git status) <- 꼭 안해도 됨. 상태 확인용
git add . <- add 뒤에 한칸 띄고 . 입니다
git commit -m "first commit" <- first commit 은 임의로 써준 내용입니다. 바꿔도 상관없어요.
git remote add origin (레포지터리 주소) <- 레포지터리 주소는 아래 사진처럼 복사해와주면 됩니다.
git push -u origin master
여기까지 하면 자신의 깃허브 레포지토리에 파일이 올라와 있는 걸 확인할 수 있어요.
Branch 란?
프로젝트를 진행하다가 특정 기능이나 디자인을 넣을지 말지 고민하는 경우가 생길 수 있는데
이럴 때 브랜치 개념을 이용합니다.
브랜치, 말 그대로 가지를 쳐서 다른 브랜치에서 시도를 하다가
맘에 들어서 main 브랜치에 합치고 싶으면 합치는 개념이에요.
오늘 세미나에서는 기초중에 기초만 배울 것이기 때문에 브랜치를 어떻게 다루는지에 대해서는 깊게 들어가지 않을거예요. 보통 협업 프로젝트를 할 때에 쓰입니다!
혹시 브랜치에 대해서 더 궁금하시면 여기에 branch 개념이 자세히 설명되어있어서 참고하실 분은 봐주세요!
https://paullabworkspace.notion.site/4-Branch-7552c2a8c2b340ce9622a8a6364dc47a
Clone 이란? + [Clone 실습]
git clone이란 깃허브에서 소스코드를 다운받고 싶을 때 쓰는 명령어예요.
(서버 저장소에 있는 데이터를 로컬 컴퓨터로 복사해서 그대로 가져오는 개념)
클론하는 두 가지 방법이 있는데
1. 링크를 복사하는 방법
2. 직접 파일을 다운로드 하는 방법
우리는 1번 방식으로 실습해보겠습니다.
다운 받고 싶은 소스코드가 있는 깃허브에 들어가서
초록색 Code 버튼을 클릭합니다
그리고 깃 주소를 복사해주세요.
소스를 다운 받을 폴더를 미리 만들었습니다.
저는 배경화면에 TAB_clonetest라는 폴더를 만들었어요.
이 폴더 안에 들어가서,
폴더 안에서 오른쪽 버튼 클릭 -> git bash 클릭
git bash 창이 뜨면 다음과 같은 명령어를 차례로 입력합니다.
git init
git clone (복사한 주소)
그러면 TAB_clonetest 파일에
파일이 clone 되어 다운받아진 것을 확인할 수 있습니다.
+)
방금은 git clone (주소) 명령어를 입력했는데
주소 뒤에 . 을 붙여주면 현 디렉토리에 새로운 디렉토리를 생성하지 않고 바로 해당 디렉토리에 clone 됩니다.
참고하면 좋을 것 같은 자료들📌
깃과 깃허브에 대해서 좀 더 소개하고 싶은 내용들이니
참고하실 분들은 가벼운 마음으로 보시면 될 것 같아요.
수고하셨습니다!
https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df
https://daddyprogrammer.org/tech-news/?vid=285
https://beomseok95.tistory.com/328