GitHub에는 유명한 오픈소스 프로젝트들이 많으므로 다른 고수분들의 소스를 참고하여 버그를 찾거나, 기능을 추가해서 기여를 할 수도 있다.
구글이 만드는 기계학습 라이브러리인 텐서플로(Tensorflow), 애플이 만든 개발 언어 스위프트(Swift), 그리고 10만 개가 넘는 별을 받은 뷰(Vue.js)까지 다양한 오픈소스가 활발하게 운영되고 있습니다. 오픈소스는 개발의 꽃이며, Git은 오픈소스 활동을 전 세계로 확장시킨 일등공신입니다.
GitHub의 검색창에stars:>1를 검색하고 언어를 선택하면 star를 많이 받은 프로젝트 순으로 볼 수 있다.
특정 언어로 바로 검색하고 싶을때는 stars:>1 language:Java 서식으로 입력하면 검색창에서도 필터링 가능하다.
저장소(Repository) : 저장소를 의미하고 branch에 따라 버전을 저장한다. 모든 히스토리는 조회가 가능하다.
커밋(Commit) : 저장소에 저장하는 행위로서 하나의 버전을 생성 -> 버전을 이용하여 특정 커밋을 지우거나 복구하는 등의 관리를 할 수 있다.
Local : 인터넷 없이 접속할 수 있는 집의 데스크탑이나 노트북의 파일 환경이 로컬에 속한다.
Remote : 외딴이란 뜻을 가진 단어 Remote 처럼 로컬과는 멀리 떨어져 있는 서버의 환경을 뜻한다.
Staging Area : 저장소에 커밋되기 전의 모든 수정내역을 반영한 커밋을 준비하는 위치이다.
브랜치(Branch) : Repository에서 뻗어나온 하위 저장소이다. 단어 뜻 그대로 가지 또는 분기점으로 이해하면 된다. GitHub에서 보통 저장소를 처음 생성하면 main 혹은 master 브랜치 1개가 기본으로 생성이 되어 있다. 원래 master브랜치가 기본으로 생성이 됬으나 단어의 어원이 노예라는 뜻으로 안 좋게 해석될 수 있기에 기본생성되는 브랜치가 main으로 바뀌었다는 이야기가 있다.
Head : 현재 작업중인 브랜치를 말한다.
머지 (Merge) : 다른 브랜치의 내용을 현재 브랜치로 가져와 현재 브랜치의 내용이 수정되는 것을 의미한다.
[ GitHub, GitHub Desktop을 이용한 Git 사용하기 ]
1. Remote 저장소를 생성한다.
홈 화면에서 New 버튼을 클릭하면 저장소 생성 페이지로 이동
저장소 생성시에 깃 이그노어 파일을 즉시 추가할 수도 있다.
2. 깃 이그노어(.gitignore) 파일은 로컬에서 서버로 작업내용 공유시 제외할 항목을 저장하는 기능을 한다.
gitignore.io 사이트를 이용하면 특정 언어나 프레임워크에 해당하는 깃 이그노어 파일을 따로 만들 수도 있다.