Visual Studio Code(이하 VSCode)에는 Terminal이 있기 때문에, Git커맨드를 실행하는 것이 가능합니다.

일단, 현재 프로젝트의 디렉토리를 확인해보겠습니다.

 

참고로, 여기서 Git의 사용법은 이전에 올린 GitHub의 사용법과 같습니다.

2020/06/15 - [Git & GitHub] - [GitHub] GitHub의 사용법을 공부했습니다.

2020/06/17 - [Git & GitHub] - [GitHub] Branch를 이용한 협업 방법을 공부했습니다.

 

그럼, 현재 디렉토리에 있는 프로젝트 파일들을 GitHub에 올려보겠습니다.

 

먼저, 디렉토리를 Git으로 관리하기 위해 "git init" 명령어을 실행합니다.

 

디렉토리의 git 초기화 작업이 성공했다면 다음의 명령어 순으로 입력, GitHub에 프로젝트를 업로드 하겠습니다.

$ git add .
$ git commit -m "first commit"
$ git remote add origin git@*************************.git
$ git push -u origin master

 

 * 업로드 결과 

 

GitHub Repository 확인

github.com/mokochi/Blog_GitHub_From_VSCode.git

 

문제없이 Push가 잘 된 것을 확인할 수 있습니다.

 

또한, README.md파일이 자동으로 생성되어 있는것을 확인할 수 있었는데,

이 파일은 Salesforce 프로젝트 생성시에 자동으로 생성되는 것으로 보입니다.

내용도 그럴싸한 내용이 들어있네요.

(현재 프로젝트와는 전혀 무관하지만..)


이상으로 VSCode의 Terminal을 이용해 Git명령어를 실행, GitHub에 업로드(Push)하는 과정까지 알아보았습니다.

 

 

이전 포스트에서는 Git과 GitHub을 사용하는 방법을 간단하게 설명했습니다.

 

이번 포스트에서는 Git을 이용하여 버전 관리 또는 다른 개발자들과 협력하는 방법에 대해서 설명하겠습니다.


# 목차

  • Git을 이용한 협업 워크 플로우

  • Branch를 이용한 협업 방법
    1) master 를 개발용 develop 브랜치에 복제
    2) develop 브랜치를 베이스로 feature 브랜치 생성
    3) 담당 업무 수행 및 수정 내용 commit
    4) Pull Request 송신
    5) 승인 후 병합(Merge)


# Git을 이용한 협업 워크플로우

Master : 배포 이력을 관리하기 위한 브랜치(태그로 관리)

Hotfix : 제품을 배포한 후 발견된 버그 등을 수정하기 위해 임시로 사용하는 브랜치

Release : 제품을 배포하기 위해 준비를 하는데에 사용하는 브랜치

Develop : 개발이 완성된 기능(Feature)들을 병합하기 위한 브랜치

Feature : 기능을 개발하기 위해 사용하는 브랜치(개발자가 각자 작업을 하는데에 사용)


Branch를 이용한 협업 방법

 

1) master 를 개발용 develop 브랜치에 복제

먼저, master를 복제할 develop용 로컬 저장소를 생성합니다.

 

  mkdir develop    // develop 디렉토리 작성

  cd develop         // develop 디렉토리에 이동

  git init               // 디렉토리를 Git저장소로 변환

 

그 후, Master를 Develop 저장소에 복제(Clone)합니다.

 

  git clone [공유 Master Repository URL]

 

ex) 본 포스트에서는 이전 포스트에서 만들었던 Repository를 마스터로 하겠습니다.

 

  git clone github.com/[유저명]/Test001.git

 

마지막으로, develop 브랜치를 생성하고 저장소에 push해줍니다.

 

  git branch develop                     // develope 브랜치 생성

  git push -u origin develop       // develope 브랜치를 저장소에 push

 

2) develop 브랜치를 베이스로 feature브랜치를 생성

각자 개발자가 본인의 업무를 위해 feature브랜치를 생성합니다. 이 때, master가 아닌 develop 브랜치를 기준으로 브랜치를 따야 합니다.

  

  git branch feature_branch develop    // develop 브랜치를 베이스로 feature_branch를 생성

  git branch                                                // 생성된 브랜치 리스트를 확인

 

결과 화면)

 

3) 담당 업무 수행 및 수정 내용 commit 및 push

작업 할 feature_branch 로 이동한 후, 개발 작업을 수행합니다. 

개발 작업이 끝나면 변경된 내용을 commit 및 push합니다.

 

본 포스트에서는 이전 포스트에서 작성했던 "test.html"파일을 수정하겠습니다.

 

먼저, feature_branch로 이동한 후, 파일을 아래와 같이 수정해줍니다.

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
  </head>
  <body>
<!-- <h1></h1>태그 추가_start -->
    <h1>Hello?</h1>  
<!-- <h1></h1>태그 추가_end -->
  </body>
</html>

수정이 완료되었다면, 아래의 코드로 수정된 파일을 commit 및 원격 저장소에 push 해줍니다.

 

  git add test.html

  git commit -m "add tag <h1>"

  git push git push --set-upstream origin feature_branch

 

4) Pull Request 송신

수정한 파일이 원격저장소에 성공적으로 push 되었다면, GitHub에서 해당 Repository를 확인합니다.

Repository의 내부를 보면, 노란색 블록으로 feature_branch가 push 되었다고 알려줍니다.

사진과 같은 노란색 블록이 표시되었다면, 오른쪽에 "Compare & pull request" 버튼을 눌러 "Open a pull request"화면을 표시합니다.

 

[1]: develop로 변경해줍니다.

[2]: 변경된 내용을 기입합니다.

[3]: 톱니바퀴 버튼을 눌러, 리뷰를 받을 상대를 선택합니다.

[4]: 톱니바퀴 버튼을 눌러, 본인을 선택합니다.

 ※ 필요에 의해 다른 항목도 추가 입력 해줍니다.

 

입력이 끝났다면, "Create pull request"버튼을 눌러 Pull Request를 요청해줍니다.

 ※ 상황에 따라, "Create pull request"가 아닌, 화살표 버튼을 눌러 "Create draft pull request"를 우선적으로 사용하는 경우가 있습니다. 

이 부분은 사람에 따라, 회사에 따라 사용법이 바뀔 수 있습니다.

 

5) 승인 후 병합(Merge)

상대방으로부터 Pull Request의 승인을 받았다면, feature_branch 브랜치에서 수정한 내용을 develop 브랜치에 병합합니다.

위 화면에서, "Merge pull request"버튼을 눌러줍니다.

이 후에 표시되면 위 화면에서 "Confirm merge"버튼을 눌러 develop브랜치에 병합합니다.

 

병합이 완료되면, "Delete branch"버튼을 눌러 필요가 없어진 feature_merge를 삭제해줍니다.

경우에 따라, 수정 이력을 남기기위해 feature브랜치를 삭제하지 않고 남기는 경우도 있습니다.


이상으로, Git과 GitHub을 이용한 버전 관리 및 협업 방법에 대해 간단히 알아보았습니다.

 

master와 develop를 나누어 사용하는 방법이나 pull request를 사용하는 방법 등, Git 과 GitHub를 이용하여 협업을 하는 방법은 같이 일하는 개발자, 또는 회사의 업무 방법에 따라 전부 달라지기 마련입니다.

 

그 때 그 때 상황에 맞춰 능동적으로 Git · GitHub을 사용할 수 있도록 더 공부를 할 필요가 있을 것 같습니다.

 

p.s) 코로나 때문에 원격으로 GitHub에 대한 지식을 알려준 Hamill 님에게 심심한 감사 인사 남기겠습니다.

(블로그에 박-제)

 

도움1) https://velog.io/@kameals - Hamill

참고1) https://blog.appkr.dev/learn-n-think/comparing-workflows/ - Git을 이용한 협업 워크플로우 배우기

참고2) https://mrw0119.tistory.com/120 - [GitHub] 튜토리얼 - 깃허브 사용법

지금까지 svn만 사용해와서 살짝 늦은 감이 있지만, GitHub의 사용법을 공부해보았습니다.

 

본 포스트에서는 Windows환경에서의 GitHub사용법을 설명하므로 cmd를 사용합니다.

 


 

# 목차

  • GitHub 란?

  • GitHub 사용에 필요한 기본 지식

  • GitHub 사용법


 

# GitHub 란?

 GitHub란 개발 중인 소스코드의 버전 관리 및 팀원과의 협업이 가능한 소스코드 관리 서비스 입니다.

GitHub에 저장된 소스코드를 다수의 인원이 열람할 수 있고, 간단한 버그의 관리 및 SNS기능도 있어 언제 어디서든 다른 사람들과의 프로젝트가 가능합니다.

 

본 글에서는 개별적으로 사용하기 위한 방법 즉, 자신의 GitHub저장소에 소스코드를 저장하고 불러오는 방법에 대해서만 간단히 설명하겠습니다.


 

# GitHub 사용에 필요한 기본 지식

 먼저, GitHub을 사용하기 위해 필요한 용어에 대해 간단히 설명하겠습니다.

 

1. 저장소(Repository)

 저장소란, 파일이나 디렉토리를 저장하는 장소이며, 보통 하나의 저장소에 하나의 프로젝트를 만들어 사용하지만, 사용자에 의해 사용법은 바뀌기도 합니다.

 

저장소에서는 저장되어 있는 프로젝트의 변경 이력을 관리 및 기록하는것이 가능합니다.

 

GitHub에는 자신의 PC에서 관리하는 [로컬 저장소]와 서버 등 네트워크에 있는 [원격 저장소]가 존재합니다.

기본적으로 로컬 저장소에서 작업을 하며, 작업한 내용을 원격 저장소에 저장하는 방식으로 사용하고 있습니다.

 

2. Git과 GitHub의 차이

 Git : 로컬 저장소에서 소스코드를 관리하는 툴

 GitHub : Git으로 관리하는 소스코드를 저장, 관리 및 공유할 수 있는 플랫폼(= 원격 저장소)

 

3. 저장소에 저장 및 복제에 사용되는 명령어

  • add : 생성 / 변경 / 삭제 된 파일을 git 인덱스에 추가

  • commit : 파일의 추가나 변경된 파일을 로컬 저장소에 저장

  • push : 로컬 저장소에 저장된 내용을 원격 저장소에 업로드

 

4. 브랜치(Branch)

 브랜치란 버전을 관리를 위해 병렬로 작업을 수행하기 위해 존재하는 기능입니다.

즉, 기존에 있는 프로젝트를 직접 수정하지 않고, 프로젝트를 새로운 브랜치에 복제해, 브랜치에서 작업을 수행할 수 있도록 해주는 기능입니다.


 

# GitHub 사용법

여기서는 본격적으로 Git과 GitHub의 사용법에 대해 설명하겠습니다.

 

1. GitHub 계정 등록

GitHub 사이트에 접속한 후, 사용자 이름, 이메일 주소, 비밀번호를 입력하여 계정을 등록합니다.

 

2. 원격 저장소(Repository) 생성

메인 화면에서 "Create New Repository"버튼을 클릭하여 Repository의 생성화면을 표시합니다.

위 화면을 표시한 후, "Repository name" 항목에 이름을 입력합니다.

또한, 해당 Repository가 어떤 용도를 위한 것인가에 대한 설명을 "Description"항목에 기입합니다.(생략가능)

 

그리고 필요에 따라, 저장소의 유형을 선택할 수 있습니다.(Public / Private)

 

마지막으로, 저장소에 README 파일을 만들어 놓고 싶은 경우에는 "Initialize this repository with a README"를 체크합니다.

 

필요 항목의 입력이 끝난 후, "Create repository"버튼을 눌러 저장소를 생성할 수 있습니다.

 

3. 로컬 저장소(Git) 생성

GitHub과 연동할 Git 저장소를 로컬PC에 생성합니다. 본 포스트에서는 cmd를 이용해 작업하였습니다.

 

  mkdir HelloWorld       // "HelloWorld"라는 디렉토리 생성

  cd HelloWorld           // "HelloWorld"디렉토리에 이동
  git init                     // "HelloWorld"디렉토리를 Git 저장소로 변환

 

4. 파일 작성

테스트를 위한 HTML파일 "test.html" 을 로컬 저장소(HelloWorld)에 작성합니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Hello World</title>
  </head>
  <body>
    <h1>Hello?</h1>
  </body>
</html>

 

5. 파일을 인덱스에 저장(add)

작성한 파일을 git의 인덱스에 저장합니다. 인덱스는 commit을 하기 위해 변경된 내용을 임시로 저장하는 위치입니다.

 

 git add test.html

 

6. 파일을 로컬 저장소에 commit

인덱스에 저장된 파일을 commit 합니다. 

 

 git commit -m "test"

 

※ 위 커맨드에서 -m 은 commit 에 대한 메시지를 적는 커맨드 옵션입니다. -m "[메시지]"를 적지 않았을 경우,

즉, git commit 만 입력할 경우, 메시지를 입력하기 위한 에디터화면이 표시됩니다.

 

7. 로컬 저장소의 상태를 확인

로컬 저장소의 변경 및 commit 결과를 확인합니다.

 git status

 

git status의 결과에서 변경 된 파일이 있는 경우, 녹색으로 표시되어 있는 [new file: test.html] 부분이 빨간색으로 표시됩니다.

 

8. 로컬 저장소와 원격 저장소를 연동

 git remote add origin http://github.com/[UserName]/[RepositoryName]  

 

ex) git remote add origin http://github.com/[유저명]/Test001.git

 

 

9. 로컬 저장소의 파일을 원격 저장소에 반영(push)

 git push -u origin master

 

명령어 입력 후, GitHub의 ID와 Password를 입력하고 나면, GitHub의 Repository에 반영됩니다.

GitHub페이지에서 본인의 Repository로 이동해 파일이 제대로 push되었는가 확인합니다.


GitHub의 사용법을 간단히 알아보았습니다.

 

정말 간단히

 

다음 포스트에서는 본 포스트에 이어 GitHub에 저장된 파일 또는 프로젝트를 로컬 저장소로 복제하여 작업을 하는 방법에 대해 설명하겠습니다.

 

즉, 본격적인 버전 관리 또는 다른 사람들과의 협력 업무를 하기 위해 브랜치(Branch)를 생성하여 작업을 하는 방법이 되겠습니다.

 

 

참고1) https://guides.github.com/activities/hello-world - GitHub Guide
참고2) https://tagilog.tistory.com/377 - [GitHub 사용법] 왕초보를 위한 깃허브사용법 (Git 사용법)
참고3) https://mrw0119.tistory.com/120 - [GibHub] 튜토리얼 - 깃허브 사용법

 

+ Recent posts