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

Data-Analysis / AI / back-end / 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

Data-Analysis / AI / back-end / Algorithm / DeepLearning / etc


안녕하세요. 지난 포스팅에서 commit이라는 기능을 통해 버전을 만들어 보는 과정을 살펴보았습니다.

이번에는 우리가 만들었던 버전들을 확인하고 과거의 버전들과 비교해보는 과정을 살펴보겠습니다.


1. 과거 버전 확인하기


먼저 과거에 우리가 어떤 버전을 만들었는지 확인해봅니다.

지난 포스팅에서도 중간중간에 쓰인 명령어 입니다.


git log


를 입력하면 아래 사진과 같은 결과가 출력됩니다.



위의 사진을 살펴보면 아래에서 시간순으로 우리가 진행했던 커밋이 나타납니다.

첫번째 커밋에서는 커밋 메세지를 'commit test'로 진행을 했습니다.

그리고 노란색으로 나와 있는 commit뒤의 내용은 commit ID라고 합니다. commit ID는 뒤에서 사용되니 일단 알아두도록 합시다.


이렇게 과거에 우리가 작성한, 만들어낸 버전들을 확인할 수 있습니다.



2. 과거 버전 비교하기 (1)


그런데 각각의 버전들이 코드상에 어떠한 변화를 주었는지는 어떻게 확인할까요?

바로 아래의 명령어를 통해 확인할 수 있습니다.


git log -p


위의 명령어를 입력하면 아래와 같은 결과가 출력됩니다.



아까 git log 명령어를 입력했을때와는 좀 다른 모습이죠?

해당 결과에서는 새로운 버전 관리(commit)으로 인해 코드상에 어떠한 변화가 있는지 까지 살펴볼 수 있습니다.

먼저 맨 아래, commit test 부터 간략히 살펴보겠습니다.


--- /dev/null 에서 맨 앞에 있는 ---은 이전의 버전에 대한 것을 말합니다. 즉, 해당 문장은 이전의 버전에서 아무것도 존재하지 않았다는 것 입니다.

+++ b/f1.txt 에서 맨 앞의 +++는 새롭게 관리된 버전에 대한 것을 말합니다. 즉, 해당 문장은 f1.txt에 대한 변화가 생겨났다는 의미입니다.

그리고 그 아래를 보면 +we study git+12345 라는 문장이 있습니다. f1.txt에 두 문장이 추가(+)되었다는 것을 의미합니다.


그리고 그 위의 버전 관리(commit)을 확인하겠습니다.

이전 버전에 대해 변화가 생긴 파일은 f1.txt파일이며 새롭게 관리된 버전에 대한 변화 또한 f1.txt에서 발생합니다. 그리고 +it changed!!! 를 통해 it changed!!! 라는 문장이 추가되었음을 알 수 있습니다.


좀 더 변화를 주고 확인해볼까요?


f1.txt를 아래와 같이 수정합니다.



그리고 새로운 버전을 생성합니다. 커밋 메세지는 3th commit이라고 하겠습니다.

그리고 좀 전과 같이 git log -p 명령어를 입력합니다.



위와 같은 결과가 출력되네요.

아래 두개의 커밋에 대해서는 위에서 살펴보았으므로 가장 최근, 제일 위에 있는 3th commit에 대해서 살펴봅니다. 코드가 변화된 내용을 보면, -12345, +here was number... 가 있습니다. 12345는 지워졌다는 의미이고 새롭게 here was number... 가 추가되었다는 의미입니다.



3. 과거 버전 비교하기 (2)


우리가 방금 알아본 방법에서는 연속된 버전들에 대한 비교만 가능하였습니다. 그런데 맨처음 버전과 3번째 버전의 비교를 하려면 어떻게 할까요?

이럴때는 각 커밋에 대한 commit ID를 필요로 합니다.

commit ID는 위에서 잠깐 말씀 드렸는데 git log 또는 git log -p 를 입력했을때 각 커밋에 대한 내용중 commit 뒤에 입력되어져있는 긴 문자열을 말합니다.


예를 들어 아래 사진에서 빨간 줄 쳐진 것들을 이야기합니다.



그리고 위의 사진에서 빨간줄 쳐진 두개의 commit ID를 이용하여 첫번째 버전과 세번째 버전에 대한 비교를 진행해보겠습니다.

명령어의 기본 형태는

git diff "commit ID1".."commit ID2"

입니다.


따라서 저는 다음과 같이 입력하겠습니다.


$ git diff b85cef55b135b541e2d91e9f34be8dff142fce04..7e9b25fae69d96c30fa400ad914f7b6aaad78dc0


이에 대한 결과는 아래 사진과 같습니다.

내용에 대한 설명은 위에서 언급한 것들과 비슷하므로 넘어가도록 하겠습니다.




4. 현재 수정 중인 것과 비교하기


git 에서는 또 다른 기능이 있습니다.

지금 작성 중인, 수정 중인 것에 대해서 제일 최근의 버전(commit)과 비교하는 것입니다.

이를 확인하기 위해 f1.txt를 다음과 같이 수정합니다.



그리고 git add 또는 git commit을 진행하지 않고 바로 아래 명령어를 입력합니다.


git diff


그럼 다음과 같은 결과가 출력됩니다.



위에서 git log -p 를 입력했을 때와 비슷한 내용이죠?

git diff 명령어는 현재 수정중인 파일들, 즉 add를 하지 않은 것들에 대해서 가장 최근의 버전과 비교를 하는 명령어입니다.

git diff 를 통해서 git add 및 git commit 을 하기전에 내가 수정한 코드에 대해 확인할 수 있습니다.


이렇게 해서 과거의 버전 또는 현재 수정하는 것들에 대한 비교를 진행해보았습니다.

위에서 학습한 방법들을 통해 각각의 버전들에 대한 차이점을 인지하고, 만약 프로그램에서 갑작스런 오류가 발생했을때 어떤 버전에서 잘못된 것인지 잡아낼 수 있습니다.


블로그 이미지

Tigercow.Door

Data-Analysis / AI / back-end / Algorithm / DeepLearning / etc


이번 포스팅에서는 git 에서 버전을 생성하기 위한 commit에 대해서 실습을 진행해보겠습니다.

git add와 git commit 에 대해서 헷갈리실 수도 있는데, 하단에서 간략하게 그림으로 설명을 진행하였습니다.


1. 사용자 등록


먼저 버전을 만들기 전에 사용자를 등록해야 합니다.

말 그대로, 버전을 만드는데 어떤 사용자가 만들었는지를 표시하기 위함입니다.

사용자 등록 명령어는 아래와 같습니다.


git config --global user.name "이름"

git config --global user.email "이메일"


이러한 명령어로 사용자 등록을 하면 아래 사진과 같이 됩니다.



사용자 등록은 한번만 해주시면 되겠습니다.



2. 버전 생성(commit)


이제 진짜로 버전을 생성해보도록 합니다.

git 에서 버전을 생성하는 것은 커밋(commit)이라고 합니다. 그리고 각 커밋을 실행할때는 해당 커밋이, 해당 버전이 어떠한 것을 하였는지 커밋 메세지를 남겨야 합니다. 주로 어떤 기능이 변경되었는지, 무엇을 추가했는지 간략하게 남깁니다.

명령어는 아래와 같습니다.


git commit -m "커밋 메세지"



커밋을 하면 위의 사진과 같이 뜨게됩니다.

지금까지 진행된 커밋을 확인하기 위해서는 아래 명령어를 입력합니다.


git log




커밋을 몇번 더 해보도록 하겠습니다.

그럼 코드를 먼저 수정해볼게요. vim f1.txt 명령어를 실행해서 파일을 수정합니다.



위와 같이 f1.txt를 수정하였습니다. vim 에디터에서 내용을 입력하기 위해서는 i 버튼을 눌러줘야하는 점 잊지마세요.


그리고 파일 변경을 확인하기 위해서, git status 명령어를 입력합니다.



아직 git add를 안해주었네요. 변경된 f1.txt 파일을 대상으로 등록해야 합니다.

따라서 git add f1.txt 명령어를 입력하고 git status를 통해서 다시 확인합니다.



변경된 f1.txt 파일이 대상으로 등록이 잘 되었습니다.

다시 한번 버전을 생성해볼게요. 즉, 커밋을 진행해보겠습니다.

이번에 커밋 메세지는, 'second commit' 이라고 하겠습니다.



커밋을 하고 git log를 통해서 확인해보니 첫번째 커밋기록과 함께 나타납니다.

이렇게 해서 버전 생성까지 진행해 보았습니다.


그런데, add 와 commit 도대체 무슨 차이일까? 너무 헷갈려! 하시는 분들도 계실 것 같은데, 간략하게 그림으로 정리해보면 다음 사진과 같습니다.



먼저 우리가 작업을 하다가, git add f1.txt 를 하는 것은 f1.txt 파일을 stage area라는 공간에 옮겨 놓는 것과 같습니다.

stage area는 commit 하기를 기다리는, 대기하는 녀석들이 모여 있는 곳 입니다.




그리고 우리가 git commit -m "커밋메세지" 를 실행하면 stage area에 있던 녀석들이 커밋 메세지로 버전이 생성되며 이 버전이 git repository에 옮겨지는 방식입니다.



이렇게 해서 버전 생성, 커밋(commit)을 진행해보고 add와 commit 의 차이점을 간략하게나마 알아보았습니다.

추가적으로 궁금한점이나 오류가 발생하시는 분은 언제든 댓글을 남겨주세요 :)

블로그 이미지

Tigercow.Door

Data-Analysis / AI / back-end / 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

Data-Analysis / AI / back-end / 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

Data-Analysis / AI / back-end / Algorithm / DeepLearning / etc