TigerCow.Door

이번  포스팅에서는 기본적인 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