1. GitHub 계정과 Remote Repository 만들기
GitHub는 프로젝트 디렉토리에서 만든 작업물을 외부의 컴퓨터로 전송할 수 있게 해준다.
= 즉 레포지토리를 전송하는 것과 같다. 외부의 컴퓨터에서도 하던 작업물의 작업과 버전관리가 가능해짐!
사용에 앞서 GitHub 홈페이지에서 회원가입이 필요하다.
앞서 생성했던 MathTool 디렉토리를 GitHub가 제공하는 장소로 옮기기 위해 우선 GitHub에서 비어있는 Repository를 하나 생성해야 한다.
Repository name에는 MathTool 이라고 적어도 되고, 다른 이름을 넣어줘도 된다.
Description에는 간단한 설명을 첨부하고 Public, Private을 설정해 준다.
그런 후 Create Repository를 클릭하면 Math_Box 라는 Repository가 생성됨!!
2. Local Repository의 내용을 Remote Repository로 보내기
GitHub에서 만든 Repository를 원격 레포지토리 or 리모트 레포지토리, 내 컴퓨터의 레포지토리를 로컬 레포지토리라고 한다.
GitHub에서 Create Repository를 한 다음 보면 아래와 같은 화면이 뜬다.
우리는 MathTool이라는 로컬 레포지토리가 있으므로, 2번째 방법을 선택해보겠다.
2번째 방법에 있는 커맨드를 내 컴퓨터에서 실행하면 로컬 레포지토리를 그대로 깃허브에 올릴 수 있게 된다.
방법2의 커맨드 세 줄을 차례대로 입력해주면, 아래에 뭔가 어려운 말들이 출력된다.
여기서 main -> main 은 뭔가가 전송되었다는 표시이다. 강의 내용에는 master로 표시되는데 main으로 표기가 바뀌었다고 한다.
완료하고 깃허브를 보면, 이렇게 MathTool 디렉토리의 파일들이 잘 올라간 걸 확인할 수 있다!
여기서 2 commits 는 내가 커밋을 2번 했다는 표시이다.
2 commits를 클릭해보면 아래와 같이 뜬다.
날짜와 내가 입력했던 이름, 커밋 메세지가 잘 표시되고 있다.
여기서 하나를 클릭해보면 변경사항들을 한눈에 확인할 수 있다.
초록색 줄의 + 는 코드가 새로 추가되었다는 표시이고, 내 화면에는 없지만 분홍색 줄의 - 는 코드가 삭제되었다는 의미이다.
깃허브를 처음 사용해본 나는 완전 신기하다잉ㅋㅎㅋㅎ
3. Local Repository에서 바뀐 내용을 Remote Repository에도 반영하기
이번에는 이 프로젝트에서 구체적으로 뭘 할건지 설명서 파일을 추가해보겠다.
sublime text로 아래와 같이 README.md 이름의 파일을 생성했다.
git bash에서 README.md 파일이 MathTool 디렉토리에 잘 생성되었는지 확인한다.
add 한 후 커밋 까지 완료!
자 현재 상황을 정리해 보면 로컬 레포지토리에 새로운 커밋이 생성되었고, 리모트 레포지토리에는 없는 상황이다.
로컬 레포지토리의 내용을 리모트 레포지토리에 추가해 주려면 git push 를 이용하면 된다.
깃허브에도 README.md 파일이 잘 올라간 걸 확인할 수 있음!!
그리고 아래쪽에 보면 README 파일의 내용이 출력된다. 깃허브에서는 파일 이름이 README일 경우 내용을 바로 보여준다.
4. Remote Repository에서 바뀐 내용을 Local Repository에도 반영하기
이번엔 반대로, 리모트 레포지토리가 더 최신 내용을 갖고 있는 경우에는 어떻게 해야할까?
깃 허브에서 README 파일의 오른쪽에 있는 연필 아이콘을 클릭해서 내용을 수정해보겠다.
파일의 내용을 아래와 같이 수정하고, 커밋 메세지도 'Add the info of calculator.py in README.md' 라고 남겼다.
커밋 메세지 아래칸에는 조금 더 상세한 설명을 적을 수 있다. 여기서는 생략하겠다.
수정을 완료하면 Commit changes 클릭!
리모트 레포지토리의 새로운 커밋을 로컬 레포지토리에 반영하려면 git pull을 사용하면 된다.
cat 커맨드를 사용해 로컬 레포지토리에서 README 파일이 잘 수정되었는지 확인해보겠다.
정리!!
- 로컬 레포지토리의 내용을 리모트 레포지토리에 반영 -> git push
- 리모트 레포지토리의 내용을 로컬 레포지토리에 반영 -> git pull
리모트 레포지토리를 사용하는 이유
- 안전성 (내 컴퓨터에 문제가 생겨 로컬 레포지토리가 사라질 경우 복원할 방법이 없음)
- 협업 가능 (git pull, git push 이용)
5. 아무나 Git push를 할 수 있는건 아니다
git push는 리모트 레포지토리의 주인, 그러니까 본인만 할 수 있다. 본인이 아닌 다른 사용자도 git push를 할 수 있게 하려면 GitHub에서 추가 작업을 해줘야 한다.
우선 깃허브의 리모트 레포지토리에서 Settings 탭 클릭, 다음으로 왼쪽 상단의 Manage access 탭을 클릭한다.
Settings -> Collaborators 클릭
현재는 PUBLIC REPOSITORY 라고 되어있다. 이는 누구나 내 리모트 레포지토리의 주소만 알면 그 내용을 살펴볼 수도, 자기 컴퓨터로 가져갈 수도 있다는 뜻이다. 하지만 그래도 본인이 아닌 이상 그 내용을 git push할 수 없기 때문에 리모트 레포지토리에 반영할 수는 없다.
그러면 다른 사용자도 git push할 수 있도록 설정을 조금 바꿔보겠다.
화면 하단에 보면 Invite a collaborator 버튼이 있다. 다른 사용자를 collaborator로 초대하면 그 사용자는 내 리모트 레포지토리에 git push할 수 있는 권한을 가질 수 있다.
초대를 받는 사람 입장에서는, 아래와 같이 Pending invite 상태가 된다.
초대장에서 View invitation -> Accept Invitation 을 차례로 클릭하면 끝!!!
6. 다른 프로젝트 가져오기
깃허브 메인화면에서 Explore 라는 버튼을 클릭하면 관심을 가질만한 프로젝트들을 추천해준다.
보고싶은 프로젝트를 클릭하면 해당 프로젝트의 파일들을 볼 수 있다. 아래쪽의 README 파일에서 어떤 프로젝트인지, 목차는 어떤지 등을 볼 수도 있다.
이런식으로 깃허브에서 다른 사람들이 만들어놓은 프로젝트를 통해 정보를 얻거나 직접 사용할 수 있다.
예시로 numpy 를 검색 후 프로젝트를 살펴보겠다.
아래쪽의 README 파일을 보면 numpy는 파이썬을 이용해서 과학적인 계산을하기 위해 필요한 기본적인 패키지 라고 되어있다. 즉 numpy는 파이썬을 이용해 과학적인 계산을 하는 프로그램임을 알 수 있다.
numpy 레포지토리를 내 컴퓨터로 가져오려면 우선 해당 레포지토리의 주소를 알아야 한다. 오른쪽 상단의 초록색 Code를 클릭하면 아래쪽에 주소가 뜬다.
Git bash로 돌아와 현재 위치를 우리가 작업중이던 MathTool에서 다른 곳으로 이동 후, git clone 커맨드를 입력해준다.
git clone 커맨드를 이용하면 깃허브 프로젝트의 레포지토리를 그대로 복제할 수 있다.
음~ 설치가 잘 되었군
7. README.md 를 더 예쁘게
보통 README.md 파일에는
- 어떤 프로젝트인지 설명하거나
- 프로그램의 주요 사용법을 알려주거나
- 프로그램을 실행시키려면 어떤 사전 작업이 필요한지
알려주는 내용들이 적혀있다. GitHub에서는 README.md 파일을 프로젝트의 메인 화면에 보여주기 때문에 README.md 파일의 내용을 가독성있게 작성하는 것이 중요하다.
README 파일의 확장자인 .md는 markdown이라는 단어의 줄임말이다. markdown은 이 파일에 마크다운으로 내용을 작성할 수 있다는 걸 나타낸다.
마크다운이란 특정 규칙에 맞게, 간단한 텍스트만으로 어떤 표시를 해두면 그것이 자동으로 HTML 태그로 전환되도록 약속된 문법이다. 그래서 단지 텍스트만으로도 내용의 디자인을 예쁘게 만들 수 있다.
마크다운 언어의 규칙은 링크 를 참조!!
앞서 설명했듯이 깃허브에서도 README 파일의 수정이 가능하다. but 수정한 후에는 git pull을 사용해 로컬 레포지토리에도 반영하는 것 잊지 말기!
정리하기
- git push -u origin master : 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때 사용
- git push : 로컬 레포지토리의 내용을 리모트 레포지토리에 보내기
- git pull : 리모트 레포지토리의 내용을 로컬 레포지토리로 가져오기
- git clone [프로젝트의 GitHub 상 주소] : GitHub에 있는 프로젝트를 내 컴퓨터로 가져오기
'1. 프로그래밍 > 1-1. Git' 카테고리의 다른 글
5. 브랜치 사용하기 (2) - [ git reset / checkout / merge ] (0) | 2021.09.05 |
---|---|
5. 브랜치 사용하기 - [ branch / merge ] (0) | 2021.09.05 |
4. 커밋 다루기 - [ commit history / 커밋 메세지 / HEAD / git reset ] (0) | 2021.08.31 |
2. Git 써보기 - [ repository / commit / add ] (0) | 2021.08.19 |
1. Git 시작하기 - [설치] (0) | 2021.08.19 |