TigerCow.Door


안녕하세요. 문범우입니다.

이번 포스팅에서는 github에서 특정 repository에 대해 branch를 생성하고 이를 바탕으로 작업을 시작하는 방법에 대해서 알아보도록 하겠습니다.



1. branch 생성하기


branch 라는 것은 직역하면 나뭇가지로써, 실제로 현재 존재하는 repository에서 뻗어나온 가지와 같은 것으로 생각하시면 됩니다.


개발 영역을 분담해서 작업할 때, 서로 작업하는 내용들에 대해 충돌 등의 예방 및 관리들을 위해서 중앙 repository 또는 개별 branch 자체에서 branch를 생성해, 기존에 있던 내용을 그대로 따와 그것을 바탕으로 개별적인 작업을 할 수 있습니다.


먼저 branch를 생성하는 것부터 진행해보도록 하겠습니다.


현재 github과 연결되어 있는 프로젝트의 폴더로 들어가 아래와 같이 명령어를 입력합니다.


1
$ git branch branch_making_test
cs


해당 명령어를 입력해도 아무 결과가 나오지 않지만,


1
$ git branch
cs


위의 명령어를 한번 더 쳐서 확인해보면 아래 사진과 같이 master와 branch_makig_test 의 두개 항목이 있는 것을 볼 수 있습니다.


git branch 라는 명령어는 현재 branch가 어떠한 것들이 있는지 알려주는 명령어 입니다.

그리고 앞에 있는 * 의 의미는 현재 선택되어 있는(가리키고 있는) branch를 이야기하는 것 입니다. 현재 master branch를 가리키고 있기 때문에 이를 변경해보도록 합니다.

(위와 같은 화면에서 나가기 위해서는 q 한번 또는 두번을 눌러줍니다.)



2. branch 변경하기


branch를 변경하기 위해서는 checkout이라는 명령어를 사용합니다.


1
$ git checkout branch_making_test
cs


위와 같이 입력하면 branch_making_test라는 브런치로 변경되었다는 결과가 뜨고 git branch 명령어를 확인해보면 이전과 달리 branch_making_test의 앞에 *가 쳐져있는 것을 확인할 수 있습니다.


그리고 다음 명령어를 통해 앞으로 push/pull을 할때 새로 만든 브런치를 원격저장소를 사용하도록 지정합니다.


1
$ git push --set-upstream origin branch_making_test
cs



3. branch 삭제하기


현재 우리의 branch는 우리의 로컬 저장소에도 세팅이 되어있고 github이라는 원격저장소에도 세팅이 되어 있습니다.(push를 했다면..)


먼저 로컬 저장소에서 branch를 삭제하는 방법은 간단합니다.

checkout 명령어를 통해 삭제할 branch가 아닌 다른 branch로 이동을 하고 아래의 명령어로 branch를 삭제합니다.


1
$ git branch -d branch_making_test
cs


이렇게 하면 git branch 의 명령어로 확인해보았을때 해당 branch가 정상적으로 삭제된 것을 확인할 수 있습니다.

하지만 github과 같은 원격 저장소에는 아직 branch가 삭제되지 않았습니다.

원격저장소에서도 이를 삭제시키기 위해서는 다음과 같은 명령어를 입력합니다.


1
$ git push origin :branch_making_test
cs


위의 명렁어를 입력하면 해당 branch가 삭제되었다는 결과가 뜨고 실제로 github에서 확인해보았을 때 해당 branch가 삭제된 것을 확인할 수 있습니다.



4. 새로운 branch를 따서 작업하기


위에서 배운 것들을 응용해서, 우리가 github에 올려두었던 프로젝트를 그대로 가져와 새로운 branch에서 작업을 진행해보도록 하겠습니다.


1. 먼저 기존에 올려두었던 github의 프로젝트를 clone 하여 가져옵니다.

1
$ git clone <repository 주소>
cs


2. 이후 명령어창을 통해 git branch를 새로 만듭니다.

1
$ git branch <새로운 branch >
cs


3. checkout 명령어를 통해 branch를 이동합니다.

1
$ git checkout <새로운 branch >
cs


4. 원격 저장소에 해당 branch에 대한 정보를 업데이트 합니다.

1
$ git push --set-upstream origin <새로운 branch >
cs


이후 처음에 clone한 원격저장소로 가서 확인해보면 새로운 branch가 생긴것을 볼 수 있으며 해당 폴더에서 작업을 하시면서, 이전과 같이 커밋과 푸시를 진행하시면 해당 branch에 수정사항이 적용되는 것을 확인할 수 있습니다.

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요



안녕하세요.


이번 포스팅에서는 github을 이용하는 기초적인 방법에 대해서 알아보겠습니다.



1. Github 이란?



Github이란 간단히 말해서 Git을 지원하는 서비스라고 할 수 있습니다.

우리가 지난 포스팅들에서 간단하게나마 git에 대해서 알아보았는데 여기서 repository(저장소)를 웹상에 올려서 보다 시각적으로, 쉽게 관리할 수 있도록 해주는 역할도 하고 있습니다.


github은 git을 지원하는 서비스 중 가장 유명하다고 볼 수 있습니다.


몇가지 특징을 알아본다면, 

Github에서 저장소, repository는 무제한으로 생성가능합니다.

하지만 public이 아닌 private으로 만드는 것은 유료입니다.

(Github Student Developer Pack을 받으면 무료입니다.)


또한, pull / pull request 방식으로 이루어져 있습니다.

(이에 대한 내용은 추후에 다뤄보도록 하겠습니다.)


저장소를 모두가 함께 공유하고 함께 다룰 수 있다.

즉, 내가 하나의 저장소를 만들고 프로젝트를 커밋한 후에 팀원들이 해당 저장소에 참여하여 함께 코드를 수정하는 등의 업무를 진행할 수 있습니다.



2. Github 준비하기


먼저 Github을 본격적으로 이용해보기 전에, Github 아이디를 생성해야 합니다.

아래 사이트에 접속하여 Github 아이디를 생성하고 로그인 합니다.


https://github.com/


이때 username은 github에서 자주 사용되므로 자신임을 인식하기 좋고 너무 어렵지 않은 것으로 설정하는 것을 추천드리고

email은 추후에도 다른 이메일을 추가하는 등의 설정이 가능하니 자신이 대표적으로 사용하는 계정을 하나 입력하시면 좋을 것 같습니다.


계정생성이 끝나고 로그인을 하면 다음과 같은 첫 화면을 만나실 수 있습니다.



여기서 새로운 저장소(repository)를 만들기 위해서는 사진의 빨간색 동그라미가 쳐져있는 녹색 버튼을 누르시면 되고, 그 외에 자신이 전에 만들었던 저장소들은 버튼 하단에 목록으로 나와있습니다.

저는 과거에 진행했던 몇가지 저장소가 있기에 목록이 뜨는데, 이제 가입하고 시작하시는 분들은 아무것도 없을 것입니다.


이때 Github을 이용하는 방법에는 크게 2가지가 있습니다.

방법이라기 보다 순서의 차이일 수도 있겠는데요, 처음하시는 분들께서 헷갈리지 않도록 나눠서 설명드리도록 하겠습니다.


첫번째의 경우는,

이미 만들어진 프로젝트(또는 새롭게 프로젝트를 시작할 때) 특정 디렉토리를 저장소에 연결시키는 경우입니다.


두번째 경우는,

누군가 만들어 놓은(또는 과거에 자신이 하던 프로젝트를 새로운 컴퓨터 등에서 할 때) 저장소를 가져와서 사용하는 경우입니다. 


두가지 모두 전체적인 그림이나, 개념은 비슷하지만 초반 시작이 약간의 차이가 있기 때문에 그부분은 따로 나눠서 설명드리도록 하겠습니다.



3. Github 으로 프로젝트 시작하기


먼저 위에서 말씀드린 두가지 경우 중 첫번째 경우에 대해서 알아보도록 하겠습니다.

Github을 통해 새로운 프로젝트를 시작하거나, 기존에 진행중인 프로젝트를 Github과 연결시키는 경우입니다.

이때 기본 개념을 생각해보면, 우리가 원래 작업하던 디렉토리(or 새롭게 시작하려는 디렉토리) A가 존재한다고 생각합니다.

이때 새롭게 시작하는 프로젝트던, 원래 작업하던 프로젝트던 특정 디렉토리는 존재할 것이고 단지 내부에 어떤 파일들이 얼마나 작업되어 있냐의 차이 일 뿐입니다.


그럼 저는 컴퓨터의 github_prac라는 폴더를 생성하고 내부에 단순한 markdown파일을 하나 만들고 진행하도록 하겠습니다.



뭐 여러분들은 폴더 명(디렉토리 명)이 다를 수도 있고 내부에 있는 파일이 당연히 상이할 수 있습니다.


이제 Github과 연결을 시키기 위해 Github 메인 페이지에서 repository를 만들어 보도록 하겠습니다.


아래 사진과 같이 적절한 repository name을 작성하고 설명을 작성해줍니다.

(설명은 작성하지 않아도 상관없습니다.)



그리고 제일 하단에 있는 Create repository를 눌러서 저장소를 생성합니다.


그럼 아래와 같은 화면이 등장할 것 입니다.



git으로 시작하는 명령어들이 마구마구 써져있는데, 간략하게 설명을 드려보도록 하겠습니다.


설명이 잘 이해가 가지 않는 분들께서는 아래 포스팅들을 먼저 읽어보시면 좋을 것 같습니다.


GIT(깃) #1_ 기본 개념과 설치


GIT(깃) #2_ 저장소 만들고 파일 등록하기


GIT(깃) #3_ 버전 생성(COMMIT)


GIT(깃) #4_ 버전 확인 및 비교하기


물론 해당 명령어들은 터미널(cmd)을 열어서 자신이 연결하고자 하는 폴더(디렉토리)로 이동후에 진행하는 명령어 입니다.


git init

git 저장소를 초기화 합니다.

현재 터미널이 위치한 디렉토리에 git repository를 생성하는 작업입니다.


git add README.md

git stage area 에 README.md 파일을 등록합니다.

물론, 현재 여러분의 터미널이 위치한 디렉토리에 해당 파일이 없다면 명령어에서 오류가 날 것입니다.

즉, 저 같은 경우에 Hello.md 파일을 add 하려면,

git add Hello.md

라고 작성해야 겠지요?

추가적으로, 현재 디렉토리에 있는 모든 파일 및 폴더를 등록하는 방법이 있습니다.

git add .

이라고 작성해주면 됩니다. 즉, 특정 파일이나 폴더 명 대신에 .(점) 을 이용하는 것입니다.


git commit - m "first commit"

이제 git stage area에 있는 내용을 git repository에 옮기는 과정입니다.

이때 메세지를 함께 작성하게 되는데 큰따옴표 사이에 있는 내용은 자신이 자유롭게 작성하면 됩니다.

주로 커밋메세지는 어떤 내용을 커밋하는건지, 즉 어떤 내용을 수정해서 커밋한건지? 어떤 기능을 추가해서 커밋한건지? 등을 적는데 사용합니다.



git remote add origin ~

이제 우리가 commit까지 끝낸 repository를 실제 github repository와 연결시켜야 합니다. 지금 설명드리는 명령어가 나와있던 github 페이지를 다시 확인해보겠습니다.



위의 페이지에서 빨간색으로 밑줄쳐져 있는 것이 개인의 github repository의 주소입니다. 물론 repository 마다 주소가 다릅니다.

해당 주소를 복사하여 명령어의 물결표시대신 입력하면 됩니다.

이때 명령어의 단어에 대해 간단히 설명드리면,

git remote 란 local 환경이 아닌 git 서버의 브런치(branch)에 대한 것을 다루는 것입니다. 브런치에 대한 내용은 나중에 보다 심화적인 내용으로 다루어야 하니, 간단히 생각해서 여러분의 컴퓨터(local) 환경에 대한 작업을 떠나 git 서버에 있는 원격 저장소를 다루는 명령어라고 생각하시면 됩니다.

즉, 새로운 원격 저장소에 대해 add origin ~ 하는 것인데, add 이므로 뒤에 있는 경로의 원격 저장소를 추가시킵니다. 이때 origin은 단순히 해당 연결의 이름이라고 생각하시면 됩니다.


git push -u origin master

이제 git push 인데, 해당 명령어는 우리가 commit을 통해 git repository에 옮겨 놓은 것들을 원격 저장소로 업데이트 시키는 명령어 입니다.

이때 -u 라는 것은 우리가 추후 git pull 이나 git push를 하는데 보다 쉽게 할 수 있도록 설정해주는 하나의 옵션이라고 생각하시면 됩니다.

그리고 master는 브런치의 이름을 적어주는 것인데, 아직 브런치의 개념을 배우지 않았기 때문에 그냥 넘어가겠습니다.



해당 명령어들을 차근차근 터미널에서 실행시키면 해당 디렉토리의 파일 및 폴더들이 github repository에 올라간 것을 확인할 수 있습니다.



4. Github에서 프로젝트 가져오기


이건 시작이 보다 간단하기 때문에 짧게 소개해 드리도록 하겠습니다.

예를 들어, 다른사람이 프로젝트의 github 주소를 알려주어 해당 내용을 모두 자신의 컴퓨터에 내려받아 확인하고 싶을 때가 있습니다.

그럼 아래와 같은, repository의 메인화면에서 빨간색 동그라미가 쳐진 부분을 확인 합니다.



Clone or Download 라는 녹색 버튼인데, 해당 버튼을 클릭해보면 어떤 주소와 함께 두개의 버튼이 나옵니다.

물론 zip 파일을 통해 내려받아서 압축을 풀어 확인해도 되겠지만, 해당 내용을 계속 git 으로 관리할 것이라면 git clone 명령어를 이용하는 것이 효율적입니다.

즉, 자신이 해당 repository를 내려받고자 하는 경로(디렉토리)로 터미널을 위치시키고 아래의 명령어를 입력합니다.


git clone ~


이때 물결은 녹색버튼을 눌렀을 때 나오는 주소를 복사해서 넣어주면 됩니다.



이렇게 해서 간단하게, github을 이용하는 방법에 대해서 알아보았습니다.

github에서는 브런치를 사용하여 협업을 보다 수월하고 효율적으로 할 수 있도록 많은 기능들을 제공합니다. 이번 포스팅에서 알아본 것은 매우 기본적인 내용이므로 개발을 시작하는 분들이라면 꼭 익히고 손에 익숙하도록 자주 사용해보는 것이 필요합니다.

또한 github은 매우 유명한 서비스이기 때문에 구글링을 통해서도 보다 많은 정보를 얻을 수 있습니다.

해당 포스팅에서 잘 해결되지 않거나 내용에 대한 피드백은 댓글 및 이메일을 이용해주세요 :)

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요