깃이라는것을 써본적도 없고 들어보기만해서 이 참에 하나씩 배워가고자 한다.

여기저기 찾아봐도 모두 명령어 치는 것들이 나와 혼란스러워 깃허브부터 시작해보도록 하자.

(이때까지만 해도 깃과 깃허브가 같은것인줄 알았는데 아니더라;)

 

우선 깃허브(github.com/)에 접속하여 로그인을 하게되면 아래와 같은 화면이 나오는데

역시 모든게 영어로 되어있어 참 난감하다.

 

제목과 마찬가지로 GitHub Gides가 존재하는데 화면 중앙에 [Read the guide] 라는 버튼이 보여 그걸 클릭하고 들어가보자. (이 게시글의 내용은 해당 가이드 내용을 토대로 정리한 것이다.)



GitHub Guides(guides.github.com/activities/hello-world/) 에 접속해보면 아래와 같은 화면이 나온다.

개발자들에게 익숙한 "Hello World"와 함께 우리를 반겨준다.



GitHub Gides 에서 우리가 배울 내용은 다음과 같이 안내한다.

  • 저장소(Repository)생성사용방법
  • 브랜치(branch)시작관리방법
  • 파일을 수정하고 깃허브에 커밋(Commits)하여 푸시(Push)방법
  • 풀(Pull) 요청병합방법

What is GitHub? - 깃허브란 무엇일까?

깃허브는 버전 관리와 협업을 위한 코드 호스팅 플랫폼이다.깃허브를 사용하면 다른사람들과 어디서든 프로젝트 작업을 할 수 있다.

 

이 튜토리얼은 저장소(repositories), 브랜치(branches), 커밋(commits), 풀 요청(Pull Requests) 같은 깃허브의 필수적인 것들을 가르치며, 일련의 깃허브 작업흐름을 배울 것이다.


Step 1. 저장소(Repository) 생성하기

보통 하나의 저장소는 하나의 프로젝트를 만들기위해 사용된다.

저장소는 폴더와 파일, 이미지, 영상, 스프레드시트, 데이터셋 등의 프로젝트에서 필요한 어떤 것이든 저장할 수 있으며,

아이디어나 리소스, 다른 사람들과 공유하거나 토론하는 것들도 저장할 수 있다.

 

이제 서론이 길었으니 본격적으로 하나씩 알아보자.

 

1. 오른쪽 상단에 있는 [+] 버튼을 클릭하고 "New repository"를 선택한다.



그럼 이제 등록 화면으로 넘어 왔을텐데 이어서 진행해보자.

 

2. 저장소 명(Repository name)에 "hello-world"라는 이름을 주고(그냥 아무거나 원하는 이름을 주면 된다.),

간단하게 저장소에 대한 설명을 넣는다.(설명(Description)은 옵션이라 그냥 넘어가도 된다.)

 

3. 그리고 Initialize this repository with: 란에서 [Add a README file] 을 선택해주자.

 

4. 마지막으로 기타 개인적인 설정이 끝났으면 [Create repository] 버튼을 클릭하여 저장소를 생성한다.



아래쪽 저장소 생성 버튼 위에 "This will set main as the default branch..." 라는게 생기는데 위에 세개중 하나라도 선택하면 뜨는 내용이며 "main"이라는 브랜치가 기본적으로 하나 만들어진다는걸 의미하는거라 나중에보면 생성 되어 있을것이다.

 

이제 드디어 첫 저장소인 "hello-world"를 아래 화면처럼 생성하였다!



Step 2. 브랜치(Branch) 생성하기

브랜칭(Branching)하나의 저장소에서 서로 다른 버전을 동시에 작업하는 방법이다.

 

기본적으로 저장소는 "main"이라는 이름의 메인 브랜치를 가진다.우리는 "main"외의 다른 브랜치를 만들어서 "main" 브랜치에 커밋하기 전에 수정하고 테스트한다.

 

"main" 외의 브랜치가 만들어지면 그 순간에 복사본 혹은 스냅샷이 생성된다.당신이 새로운 브랜치에서 작업하는 동안 누군가 "main" 브랜치를 수정한다면 당신은 그 업데이트들을 풀(pull)받을 수 있다.

 

다음의 다이어그램에서 보여주는 내용은 다음과 같다.

  • main 브랜치
  • feature 라는 새로운 브랜치
  • feature 브랜치가 main 브랜치로 병합(merge)되기 전까지의 과정


깃허브에서 개발자, 작가, 디자이너들은 브랜치를 사용하여 버그 수정 및 특정 작업을 main브랜치로부터 분리하고, 수정이 완료되면 작업된 브랜치를 main 브랜치로 병합한다.

 

이제 브랜치를 생성하는 방법에 대해 알아보자.

지금 설명할 방법외에도 다른 방법이 있으니 그건 나중에 설명하도록 하겠다.

 

1. 앞서 생성한 저장소 왼쪽 상단에 "main" 이라고 쓰여있는 브랜치를 선택한다. 그러면 현재 존재하는 브랜치 목록과 입력창이 나올것이다.



2. 입력창에 "readme-edits"을 입력하고 아래에 [Create branch:readme-edits]를 클릭한다.



생성하고 나면 "main"으로 되어있는 부분이 생성한 브랜치로 바껴있을것이며, 작업에 따라 브랜치를 바꿔가면서 작업할 수 있다.

이제 여기까지 됐으면 우리는 브랜치가 "main" 과 "readme-edits" 두개가 되었을 것이다.


Step 3. 수정하고 커밋(Commit) 하기

svn이나 기타 형상관리 툴을 사용해봤으면 알겠지만 자체적으로 수정한것을 서버로 저장하는것을 보통 커밋(commit)이라 한다. 커밋할때는 코멘트 즉 커밋 메시지를 입력할 수 있는데 생략가능하지만 무엇을 커밋했는지 입력해주면 좋다.

 

1. 브랜치를 "readme-edits"로 두고 처음 생성할때 만든 README.md 파일클릭한다.



2. 우측에 파일 수정하기(연필 아이콘)클릭한다.



3. 파일 내용을 수정한다. (그냥 아무 내용이나 입력하자.)



4. 커밋 코멘트(메시지)를 작성하고, [Commit changes]클릭한다.



사실 여기서 눈치챈 사람도 있겠지만 앞서 STEP 2 에서처럼 브랜치를 생성하지 않아도 파일을 수정하고 나서 브랜치를 새로 만들어 넣을 수 있다.

아래 "Create a new branch for this commit..." 이라는걸 체크해보면 

아래와 같이 브랜치 이름을 입력할 수 있는 창이 나오고 버튼은 [Propose changes] 로 바뀐다.



이제 다시 본문으로 돌아와 위에서 수정한 내용은 "readme-edits" 브랜치에 적용되었다.그럼 STEP 2 에서 설명한것처럼 "readme-edits" 브랜치와 "main" 브랜치는 서로 다른 내용을 가지게 되었다.


Step 4. 풀(Pull) 요청하기

기본 브랜치인 "main" 외의 브랜치에서 수정된 내용이 생겼으므로 이제 풀 요청(Pull Request)을 할 수 있다.

 

풀 요청은 깃허브에서 협업의 핵심이다. 당신은 풀 요청을 하여 당신이 수정한 내용을 제안하고, 다른 사람의 리뷰를 요청하여 다른 사람들이 수정된 내용을 그들의 브랜치에 병합(merge)하도록 한다.

풀 요청은 두 브랜치로부터 다른점을 보여주며 수정된 것추가된 것 그리고 빠진것들이 녹색빨간색으로 보여진다.

 

커밋을 하면 바로 풀 요청을 열어서 토의를 시작할 수 있다.

깃허브의 멘션시스템을 사용하여, 당신은 특정 사람이나 팀에게 피드백을 요청할 수 있다.

 

1. [Pull Request] 탭을 선택하고, [New pull request] 버튼을 클릭한다.



2. 하단에 Example comparisons 에 있는 "readme-edits" 를 선택하거나, 상단에 compare 대상을 "readme-edits" 브랜치로 변경해주자.



3. 수정된 내용을 확인할 수 있다. 추가된 것은 녹색으로 표시되고, 빠진 것은 빨간색으로 표시된다. 수정된 것을 전부 확인했다면 [Create pull request]를 클릭한다.



4. 풀 요청에 대한 제목과 간단한 설명을 작성하고, [Create pull request] 버튼을 클릭한다.



Step 5. 병합(Merge) 하기

이제 길고 길었던 튜토리얼의 마지막 단계인 병합에 대해 알아보자.

수정한 "readme-edits" 브랜치를 "main" 브랜치로 병합한다.

 

1. Step 4 가 완료되면 아래 화면으로 이동되는데 여기서 [Merge pull request]를 클릭한다.



2. [Confirm merge] 버튼을 클릭한다.



3. 이제 병합이 완료되어 화면이 변화하는데 "readme-edits" 브랜치는 필요가 없으므로 [Delete branch] 버튼을 클릭하여 제거해 준다.



이렇게 이제 깃허브 내에서도 제공해주던 튜토리얼이 끝났으며 기본적인 작업 흐름에 대해 익혔다고 볼 수 있다.

좀더 상세한 가이드가 존재하는거 같은데 그건 차차 알아가보도록 하자.

 

반응형

'형상관리 > GIT' 카테고리의 다른 글

[GitHub] 깃허브 사용하기 - 튜토리얼(ft. GitHub Guides)  (0) 2021.04.10