-
Github.com생활코딩 Git 2022. 3. 29. 00:13
===
github.com은 개발자들이 소스코드의 변경사항을 백업하고, 공유하는 온라인 서비스입니다. 아주 많은 개발자들이 이 서비스를 이용해서 협업을 하고 있습니다. 대부분의 오픈소스 프로젝트들이 이 서비스를 통해서 만들어지고 있습니다. 그래서 github는 소프트웨어에 관심이 있는 사람이라면 알아야 할 서비스입니다.
===
안타깝게도 github.com는 git을 이용합니다. git은 강력하지만 배우기가 어렵습니다. 그래서 git을 사용하지 않는 개발자나 비개발자들에게는 git이라는 장애물로 인해서 github를 접하는 것이 쉽지 않은 일입니다. 이 수업에서는 이런 분들 위해서 git을 모른다고 간주하고, github.com을 소개합니다.
===
git을 사용하는 대신 github의 파일 편집 기능과 업로드 기능을 이용해서 git을 접할 수 있게 했습니다. 특히 git을 모르는 사람 중 github를 알아야 하는 사람들은 대체로 개발자와 협업을 필요로하기 때문에 이런 분들을 위해서 issue 나 insight와 같은 기능들을 중점적으로 소개합니다.
===
https://youtube.com/playlist?list=PLuHgQVnccGMDWjb0TWItMCfDWDs8Y3Oo7
Github.com
www.youtube.com
===
1.수업소개
개발자들 세계에선 소스코드의 변경사항을 관리하는 도구를 버전관리시스템(이하 VCS, 너무길어서 내가 줄임)이라 함
이 버전(?)을 통해서 만들어진 각각의 파일을 백업해주고 타인에게 공유해서 여러사람이 공동으로 작업할 수 있게 해주는 온라인 서비스가 바로 깃허브닷컴
===
Dropbox
Google Drive
OneDrive
iCloud
모두 파일의 변경사항을 추적하고 백업하고 공유해주는 서비스
원조격인 Dropbox의 사업계획서에는 개발자들이 잘 쓰고 있는 검증된 VCS 같은걸 일반인도 쓰게 해서 대박낼거에요 라고 써져있음.
여기서 말하는 VCS에 속하는 구체적인 제품으론 CVS, SVN(서브버전), GIT이 있다.
GIT은 현시점에서 가장 많이 사용되는 VCS, 2004년에 생김
===
git, github닷컴이 뭐가뭔지 혼란스러울것. 설명하기 위해 dropbox와 비교를 할 것
Dropbox는 크게 두가지로 이뤄져있다
(1)Dropbox Client : 여러분이 다운로드받아서 설치해서 실행시키는 프로그램
여러분이 어떤 파일을 수정했을 떄 그 수정한 파일을 업로드 시켜줌
(2)dropbox닷컴 = dropbox Server : Client가 업로드한 파일을 저장해주는 온라인서비스
협업, 공유작업
===
이것과 똑같은 효과를 GIT에서도 기대할 수 있다
사용하기 좀 더 어렵고 훨씬 더 자유롭다
dropbox Client에 해당 = Git Client라고 불리는 프로그램
dropbox는 어떤 회사가 만든거라서 dropbox Client는 dropbox에서 만든것밖에 없다
Git은 오픈소스라는 거대한 생태계 위에서 만들어진 서비스, 소프트웨어기 때문에 여러 깃클라이언트가 있고 마음에드는걸 쓰면됨
ex)커맨드라인프로그램, 소스트리, 깃허브데스크탑
GitClient를 통해서 우리가 만든
깃의 버전, 깃의 파일의 내용
이런것들은 dropbox닷컴과 동급인 GitServer에 저장한다( = 깃 원격 저장소)
여기에 속하는 구체적인 서비스중에 가장중요하고 가장 유명한것이 github닷컴
(그 외 빗버켓.. 내가직접서버운영.. 등)
오픈소스라서 클라나 서버나 여러개가 있으니 취향에 따라 클라이언트와 서버를 조합해서 쓰면 된다
모든 개발자가 github닷컴을 알고 제일 많이 쓴다 모르면 뒤쳐지는 것. 그걸 배우자
===
2. 저장소 생성
깃허브의사용법
회원가입 로그인 후 제일 먼저 해야할것은
깃허브란 서비스 안에서 여러분의 프로젝트를 저장할 저장소를 만드는 것
저장소란것이 뭐냐면
앱을 5개를 만들면 각각이 프로젝트일 것인데 각각의 프로젝트를 위한 소스코드를 저장하는 저장소 5개가 필요할 것
ㅇㅋ?
만들때
이름, Public/Private(5개쯤까진 무료)
만 설명
git도 github라는 서비스에서 관리되는데, 얘 저장소를 살펴보자 https://github.com/git/git
이게 괜찮은 프로젝트인가를 보는 방법
58495commits : 파일들의 변화를 나타내는 버전. 이 프로젝트는 58495의 버전으로 이뤄져있다
1346 contributors : 1346명의 협업자들이 있다, 여기에 리눅스 토발즈도 있다
Star에 31.5k : 좋아요
Watch 2.2k : 구독
Fork 18.3k : 복제해간 사람
숫자들이 어마어마해. 아 이 프로젝트는 신뢰할만 하구나
이 프로젝트를 사용하고 싶을 땐 저 초록색 Clone or download
git을 이용해서 쓸 땐 HTTPS, SSH..
git을 안이용할 땐 Download ZIP
---
commits를 누르면
제일 위가 가장 최근에 수정된 버전, 이걸 누르면 저 버전, 변경사항에 속하는 파일들이 나타남
초록색이 추가된 것
빨간색은 이전버전과 비교했을 때 제거된 것
===
3.버전생성
저장소에 파일을 업로드해보자
그냥 여기서 작성할 수도 있다
1 2 깃에서는 작업을 끝내면 내가 어떤 작업을 끝냈는지 일지를 적는다
여러줄 적을거면 아래칸에다 적고
*Commit : 제출하다
깃에게 이걸 버전으로써 제출
이제 다른사람에게 이 링크를 보내주면 그 사람이 내용을 볼 수 있다
수정도 가능
수정하고 Code버튼 누르면
버전이 2개
작업했던 내용이 차곡차곡 정리돼있다 저거 누르고 들어가면
댓글 달 수도 있고
내용에다가 달수도있어
Create new file말고 Upload files도 있다, 이것도 하나의 버전이지
같은 파일 올리면 덮어쓰기 아니고요 그 파일의 변경사항만 반영돼
이전버전과 비교해서 바뀐점이 있으면 이렇게 기록됨
없으면 기록안됨
내부적으로 조건문을 돌리는거겠지?
===
4.git 구경하기
개발자들이 어떻게 쓰는지 구경
내컴퓨터에 깃 프로그램 깔고
저장소 주소 복사해서 CLI로 clone함(인증이 필요한데 미리 해놔서 안보인대)
git diff쳐서 마지막 버전 이후에 내가 수정한게 뭔지 보기
커밋하고(add, commit)
생활코딩이 쓴 댓글
add의 3대 의미는 이렇습니다.
커밋에 포함될 파일을 지정한다.
파일의 변화를 깃이 추척하기 시작하도록 한다.
충돌을 해결했다는 것을 깃에게 알린다.
git log : history 보여줘
이렇게 하면 내 컴퓨터와 깃허브가 버전이 달라짐
내 컴퓨터에서 만든 버전을 깃허브로 업로드 해서 두개의 상태가 같도록 해야한다
git push
내가 지금 어딜 수정했는지 보여줘
git status
===
5. 멤버
저장소에서 협업하려면 동료를 등록하는 방법이 필요
Settings > Manage access > Invite a collaborator
이러면 초대장이 발송됨. 승인을해야 멤버가 된다
이 멤버는 이제 소스코드를 다운로드/업로드 등 여러가지 기능 사용 가능
===
6. 이슈
저장소를 꾸려나갈 때 다른사람과 커뮤니케이션의 핵심 기능
문제점에 대해 의논하기 위한 게시판. 토론, 대화.
어떤 버그를 말해놓고 담당자가 지정돼있을 수도 있고 댓글이 달려있기도 하다
Issues탭에서 New issue클릭
제목
내용
담당자지정(담당자에게 알림이 간다)
이 이슈가 뭔지 라벨도 있어, 그 라벨만 모아서 볼 수도 있다
duplicate : 이미 누군가가 제출한 이슈니까 이건 close시켜도 될 것 같아요
enhancement : 기능개선
invalid : 이 이슈가 유효하지 않다, 착각한거다
question : 궁금한게 있다
추가할 수 있고
만들면
담당자가 있고
라벨(카테고리)가 있다
문제를 해결했다면
Close issue를 통해 명시적으로 표명할 수 있다, 삭제는 하지 않음. 이슈탭 눌러도 안뜬다
여러가지 방법으로 이슈를 찾아내는 방법들. Author, Label, Projects...
===
7. 마치며
issues : 서로 커뮤니케이션 하는 채널
Wiki : 하다보면 지식을 정리정돈할 필요성이 생긴다. 지금 만들고 있는 SW의 사용설명서, 프로젝트 참여 방법 등
Insights : 프로젝트와 관련된 지표. 활성화 정도, 문제점..
- Pulse : 종합정보
- Contributors : 누가누가 공헌했나 순위
- Commits : 빈번하게 일어나는지. 이 프로젝트가 최근까지도 열심히 개발되고 있는지 볼 수 있다
- Code frequency : 코드추가 / 코드삭제
- Network : Forks를 좀 더 디테일하게
- Forks : 누가누가 Fork해갔는지 리스트
*저장소를 내꺼인 것처럼 복제. 오픈소스이기 때문에 포크하면 내 맘대로 수정가능
Pull requests : react를 복제해갔으면 맘대로 수정할 수 있는데, 내가 변경시킨 내용이 괜찮으면 페이스북한테 pr하면 내가 작업한걸 pull 해가는걸 요청.
내걸 가져가달라고 하는 사람이 95개
Actions : 누르면 일종의 예제들이 나와있는건데 눌러서 들어가보면
이 저장소에 작업자들이 push를 하면 이 밑에 있는 작업들을 실행하도록 깃허브한테 세팅해놓는 것
push한게 문제가 없다면 (▽어딘가에 있는)실제 서버에 자동으로 반영시키기 할 수 있다
push 알림을 보내든지, 업무일지를 쓰게
Projects :
요즘에 프로젝트에서 해야될일 같은거 카드처럼 보이게 하는 것 많잖아요 그거
'생활코딩 Git' 카테고리의 다른 글
git flow model (0) 2022.04.01 github.com - Pull request (0) 2022.03.31 Git4 - CLI (4)Collaboration (0) 2021.12.20 Git3 - CLI (3)Backup (0) 2021.12.19 Git3 - CLI (2)branch & conflict (0) 2021.12.11