본문 바로가기

_PhD Life

Github(깃허브) 기본 사용법에 대해서

안녕하세요! 오늘은 코딩 좀 하는 사람들은 반드시 알아야 한다는 Github과 Gitlab(깃헙 또는 깃허브, 및 깃랩)에 대해서 알아보고자 합니다.


깃헙에 대해서 포스팅을 하고자 메인 홈페이지에 들어가봤떠니 어느덧 깃헙이 나온 지 10년째라고 하네요. 사실 소프트웨어 개발 회사나 팀에 속해보신 분들이라면 많이 익숙하실 수도 있고, 아니면 깃헙 대신 SVN(또는 Tortoise SVN)에 더 익숙하실 수도 있을 텐데요. SVN과 기본 철학은 동일한 것 같습니다. 소프트웨어를 개발하다 보면, Version 관리가 필수인데요. 사람이 일일이 체크하는 것도 힘들고, 소프트웨어란 것이 무수히 많은 코드 라인의 연속이기 때문에 어디에 어떻게 수정됐는지 tracking 하는 것도 힘들죠. 따라서 이를 tracking하고 관리하는 것이 Git과 SVN의 기능입니다.


Github은 개인의 소프트웨어 (또는 그냥 code 파일들) 개발을 돕는 웹 기반의 플랫폼으로, 소프트웨어를 설치하면 자신의 프로젝트를 Github 웹사이트에 업로드하여 어느 pc에서나 일관성 있게 프로젝트를 관리할 수 있습니다.


Windows에서나 Ubuntu에서나 사용법은 같습니다. 아주아주 간단한 사용법은 여길 참고하시면 되는데요.

https://rogerdudler.github.io/git-guide/index.html

새로운 Project를 시작하고 싶으면, 폴더를 만들고 해당 폴더에서 Ubuntu의 경우 Terminal을, Windows의 경우 Shift+마우스 오른쪽 클릭을 하여 Powershell을 열어 git init을 입력하면 됩니다. 하지만 저는 개인적으로 Github 사이트에 로그인하여 New project로 웹에 프로젝트를 생성 후, 그것을 checkout하는 방법을 더 선호합니다. 이 경우에는 git clone <~.git> 을 입력하면 됩니다.



현재 프로젝트가 위치하고 있는 pc의 저장소를 local repository, 웹에 있는 프로젝트 저장소를 remote repository라고 합니다. Local repository의 changes를 remote repository와 맞추고 싶을 경우, 세 가지 스텝을 거쳐야 하는데요.


먼저 git add <filename> (모든 changes를 업로드 하고싶을 경우, git add *라고 입력하면 됩니다) 를 하면, 해당 filename의 파일이 Index라고 불리는 pc의 다른 저장소에 업로드 됩니다. Index는 remote repository로 업로드 되기 전, 업로드 될 changes들을 기록하고 있습니다. 입니다. 이후, git status를 입력하면 현재 어떤 changes들이 있는지 확인할 수 있구요. 이제 git commit -m "<message>"를 입력하면 됩니다. <message> 부분에는 업로드 할 changes들이 어떤 내용을 가지고 있는지 입력하면 됩니다.


이제, 마지막으로 git push origin master를 입력하면 remote repository로 업로드되고, local repository와 싱크가 맞게 됩니다 (그 중에서도 master branch에 업로드 된다는 의미인데, branch에 대해서는 다음에 포스팅 하겠습니다).


정리하면, git add * -> git commit -m "<message>" -> git push origin master입니다.