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

이번  포스팅에서는 기본적인 git 저장소를 만들고, 하나의 파일을 git이 관리할 대상으로 등록해보는 작업을 해볼거에요.

실습을 진행하며 필요한 개념들은 그때 그때 설명하도록 하겠습니다!


1. 저장소 만들기


저장소란 무엇일까요?

저장소란 말그대로 무엇인가를 저장하는 공간입니다.

그렇다면 git에서 말하는 저장소란?

우리가 진행하는 버전 관리에 관한 내용들을 저장하는 공간입니다.

우리는 git을 통해 우리가 작업한 소스코드의 히스토리나 기타 정보를 확인 할 수 있습니다.

그리고, 그렇게 하기 위해 git은 과거의 소스코드 또는 소스의 변화를 저장해두어야 하죠.

따라서 우리는 git을 통해 버전 관리를 하기 전에, 우리가 어떤 폴더에 대해서 버전관리를 시작할지 말해주고 해당 영역에 git 저장소를 만들어주어야 합니다.


그럼, Git bash를 실행시키도록 합니다.

처음에 있는 화면에서 pwd 명령어를 입력하면 지금 어느 폴더에 위치해있는지 알려줍니다.

아래의 사진경우, 저는 C아래, Users아래, B.W.Moon이라는 폴더에 위치해있습니다.




그리고 mkdir과 cd 명령어를 통해 폴더를 만들어 위치를 이동시킵니다.

mkdir gitProject (현재 위치에 gitProject라는 폴더를 만듭니다.)

cd gitProjcet (현재 위치에서 gitProject라는 폴더로 이동합니다.)

mkdir gitStudy (현재 위치에 gitStudy라는 폴더를 만듭니다.)

cd gitStudy (현재 위치에서 gitStudy라는 폴더로 이동합니다.)




그리고 현재 폴더를 깃 저장소로 만들기 위한 명령어를 입력합니다.

git init




위의 그림과 같이, git init을 입력하면 현재 디렉토리에서 .git이라는 폴더에 깃 저장소(git repository)를 초기화 하였다고 알려주게 됩니다.



2. git이 관리할 파일 등록


우리는 위에서 gitStudy폴더를 깃 저장소로 초기화하였습니다.

그리고 이제, 어떤 소스코드를 git에서 관리할지 등록하겠습니다.

먼저 간단한 예제 파일을 생성해볼건데요, 명령어시스템에서 많이 사용되는 vim 에디터를 사용합니다.


아래 명령어를 통해 파일을 생성합니다.

vim f1.txt



그럼 위와 같은 창이 뜰텐데, 여기서는 어떤 키를 눌러도 입력되지 않을 것입니다.

지금은 입력모드가 아니어서 그런데, 알파벳 i 를 눌러서 입력모드로 바꾸면 되겠습니다.

그럼 입력모드에서 아래 사진과 같이,


we study git

12345


를 입력합니다.



그리고 이를 저장하기 위해서, ESC버튼을 누르고 :wq를 입력하고 엔터를 치시면 됩니다.


그리고 다시 명령어 입력창으로 넘어왔다면,

아래 명령어를 입력해봅니다.

git status




그럼 위의 사진과 같이 뜰텐데, f1.txt파일이 Untracked files라고 하네요?

무슨 뜻인가하면, 우리는 현재 디렉토리를 git 저장소로 초기화를 하였고 방금 f1.txt를 만들었습니다.

하지만 깃 저장소에게 f1.txt라는 파일을 추적해! 저장해! 라는 명령을 내려준 적이 없어요.

깃 저장소는 그러한 명령을 내려주지 않은 파일 및 폴더는 무시합니다.

따라서 git status라는 명령어를 통해, 어떤 파일 및 폴더가 무시되고 있는지 알수 있는 것입니다.


그럼 이걸 어떻게 해야할까요? 당연히, git에게 해당 파일을 관리하라고 명령을 내려줘야겠죠?

아래 명령어를 통해 그러한 명령을 내릴 수 있습니다.

git add f1.txt


그리고 다시 git status명령을 입력하면 f1.txt파일을 깃이 무시하지 않고 새롭게 추가하게 된것을 볼 수 있습니다.

그럼, 이제 해당 파일에 대한 버전관리를 할 수 있는 상태가 되었습니다.


그리고, 버전 관리부터는 다음 포스팅에서 지속해보도록 할게요 :)

궁금한 사항이나 내용에 대한 피드백은 언제든지 댓글을 남겨주세요!

블로그 이미지

Tigercow.Door

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


안녕하세요.

이번 포스팅 부터 git이라는 버전 관리 시스템(version management system)에 대해서 알아보도록 하겠습니다.

본 카테고리에서는 명령어를 통해 Git을 다루는 방법에 대해서 하나씩 알아보도록 하겠습니다.

기본적인 내용이나 방향은 생활코딩, 아래 URL을 바탕으로 진행됩니다.

https://opentutorials.org/course/2708


추가적으로 궁금하거나 오류가 발생하는 부분에 있어서는 언제든지 댓글을 남겨주세요 :)


1. GIT 이란?


위에서 git이란 버전 관리 시스템이라고 하였습니다.

버전 관리 시스템이 무엇일까요? 어렵게 생각하지 않으셔도 됩니다. 다들 한번씩은 버전 관리를 직접! 해보셨을 거에요.

어떤 레포트나 발표자료를 준비할 때, 워드 파일을 이렇게 저장하죠. '발표자료.docx'

그리고 몇시간, 몇일뒤 살펴보니 다시 수정할 일이 생겼네요. 그래도 덮어서 저장하기엔 불안하니 이렇게 새이름으로 저장합니다. '발표자료_최종.docx'

아이구.. 목차부분에 또 수정할 일이 생긴거 같아요. 그럼 이걸 수정하고 우리는 또 이런 새로운 이름으로 저장을 합니다. '발표자료_진짜최종.docx'

이렇게 수정이 거듭되며 파일이름은 '발표자료_이게진짜마지막최종.docx', '발표자료_이게진짜진짜진짜마지막최종본.docx', ...

지속적으로 최신버전의 워드 파일이 계속적으로 생기게 됩니다.

바로 이러한 것이 버전 관리입니다.


그럼 다시, 버전 관리 시스템이란 무엇일까요?

위에서 우리가 했던 버전 관리를 보다 용이하도록 하는 시스템을 말하는 것입니다.

물론 자신이 개인 프로젝트를 하거나, 소규모 프로젝트를 진행한다면 단순히 drop box와 같은 drive를 사용하거나 단순히 메일을 이용하는 등으로 간편히 할 수 있었겠지만, 이후 다수가 참여하는 프로젝트를 진행하거나 대규모 프로젝트에서는 그러한 것을 이용하기엔 너무나 복잡한 일들이 생길 것입니다.

그래서, 이러한 경우 소스코드를 보다 효율적으로 버전 관리 하기 위해서 사용되는 것이 Git 입니다.


Git이란 위에서 언급하였듯이, 프로그램 등의 코드를 보다 효율적으로 관리하기 위한 버전 관리 시스템입니다. 현재는 매우 널리 사용되고 있으며 git으로 작업되는 폴더는 모두 작업기록을 추적하고 확인할 수 있는 정보를 포함합니다.

본 포스팅에 이어서 우리는 앞으로 Git에 주요 용어들에 대해 알아보며 그것을 직접 실습해볼 것입니다.



2. Git 설치하기


먼저 이후 진행될 실습을 하기 위해 Git을 설치합니다.

Git설치는 매우 간단합니다.

먼저 아래 Git 사이트에 접속합니다.

https://git-scm.com/


그리고 Download 버튼을 눌러서 자신의 운영체제에 맞는 설치파일을 다운받습니다.

이후 설치파일을 실행시켜서 기본설정으로 되어있는 것 그대로 설치하면 되겠습니다.

설치가 완료되면 윈도우 검색에서 Git bash 검색을 통해 해당 프로그램을 실행합니다.

그리고 아래 그림과 같이 git 명령어를 쳤을 때 올바르게 실행된다면 설치가 정상적으로 된 것입니다.



이렇게 Git에 대한 기본적인 개념과 설치방법을 알아보았습니다.

추가적으로 궁금한 사항이 있으신분은 언제나 댓글을 남겨주세요!

블로그 이미지

Tigercow.Door

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