1. 깃 (Git) 설치 및 사용법

상세 컨텐츠

본문 제목

1. 깃 (Git) 설치 및 사용법

프로그래밍 ( Programming )/깃허브 (GitHub)

by memyself 2021. 11. 17. 00:37

본문

제대로 배워봅시다. 

우선 깃 (Git)이라는 단어는 영국에서 사용되는 속어로서 '고집 센 사람', '항상 자기 자신이 옳다고 생각하며 따지기 좋아하는 사람'이라고 표현이 되는데 리눅스의 창시자 토발즈에 따르면 자신의 고집을 담아서 지었다고 하는데 

1. the stupid content tracker (멍청한 버전 관리기)
2. git can mean anything, depending on your mood. (기분 내키는 대로 의미가 해석될 수가 있다) 
> 기분 좋을 때 "global information tracker"
> 기분 안좋을때 "Goddam idiotic truckload of shit" (욕) 
3. 아니면 그냥 유닉스 명령어 중에 git이 없어서 그냥 골라봄. 

뭐 큰 뜻은 없으니 넘어갑시다. 


깃은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위해서 만들어진 분산 버전 관리 시스템과 명령어들을 통틀어 말합니다. 2005년에 리눅스 커널 개발을 위해서 리누스 토발즈가 처음 개발을 했으며 다른 커널 개발자들과 함께 개발을 함께 하기 위해서 만들어졌습니다.

Git의 장점 

Git은 분산형 관리 시스템이기에 중앙 서버에 장애가 발생해도 로컬 저장소에서 커밋이 가능하다는 장점이 있으며 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능한 시스템입니다.

또한 소스코드를 주고받을 필요가 없기에 같은 파일을 여려 명이 동시에 작업을 할 수 있는 병렬 개발이 가능합니다. 

이런 점을 이용하여 팀 프로젝트가 아닌 개인 프로젝트라 하더라도 Git을 통해서 버전 관리를 하면 체계적이고 프로그램이나 패치를 배포하는 과정도 아주 간단해집니다. 

 

 

Git과 Github의 차이 

흔히 우리가 보는 것은 Github인데 2개의 차이가 무엇일까요? 간단하게 정리하면 다음과 같습니다.
- Git: 버전관리 시스템
- Github: 버전 관리 웹호스팅 서비스 (Git의 호스팅 플랫폼) 

Git은 위에서 설명한것처럼 버전 관리를 위해서 존재하는 소프트웨어이며 Github은 Git에서 다루는 코드 및 저장소를 저장할 서버 역할을 함으로써 협업하는 사람들이 Github을 거쳐서 코드를 공유하고 또는 배포하고 다양한 역할을 할 수 있게 됩니다. 

 

 

이제 깃 설치를 해봅시다. 

1. 다운로드 하기
사이트: https://git-scm.com/downloads 

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

사이트에 들어가셔서 자신의 컴퓨터에 설치된 운영체제에 맞는 버전을 다운로드하면 되겠습니다. 

그리고 다운이 다 되면 설치를 진행하는데 기본 설정을 유지한 상태로 지속적으로 다음 버튼을 누르면 되겠습니다. 

깃을 설치하게 되면 명령 프롬프트에서도 git의 명령어들을 실행할 수가 있게 되는데 명령 프롬프트를 시작해서 git을 입력하면 다음과 같이 사용할 수 있도록 설명 창이 설치 후에는 나타나게 됩니다. 

 

2. Github에서 Repository 만들기

이제 Github에서 Repository를 만들어봅시다. 우선 회원가입을 진행합니다. 

회원가입 진행이 되었으면 왼쪽 상단에 고양이 모양을 누르면 다음과 같이 동일한 페이지가 나오게 되고 여기서 초록색의 New 버튼을 누릅니다. 

New 버튼을 누르면 밑에 사진과 같이 설정창이 나옵니다. 

여기서 이름을 넣어주시고 Description은 Repository를 설명하기 위한 창으로써 안 하셔도 문제가 없습니다. 

Public을 클릭하면 자신이 만든 코드를 오픈소스로 공개하겠다는 것이고 private로 하신다면 자기 자신만 볼 수 있는 저장소로 만들겠다는 설정입니다. 

Readme 파일은 Project를 설명하기 위해서 만드는 파일로서 만약 누군가에게 친절한 설명을 덧붙여서 또는 설치 과정 등을 잘 남기고 싶다면 사용하는 방향을 추천드리고 체크를 안 하셔도 문제는 없습니다. 

gitignore은 사용자가 원하지 않는 파일들을 자동적으로 git 복사 대상에서 제외시켜주는 파일입니다. 해당 파일 또한 체크를 안 해도 사용에는 문제가 없습니다. 

 

만드셨다면 여러 git 명령어들과 함께 상단에는 자신이 만든 repository의 링크가 보일 겁니다. 이제 여기서 멈추고 git 사용으로 다시 넘어가 봅시다. 

 

3. Git 사용하기 

명령 프롬프트를 실행합니다. 명령 프롬프트 실행은 시작 버튼을 눌러서 검색창에 명령 프롬프트를 검색하시면 나옵니다. 

 

git을 사용하기 위해서 먼저 환경 설정이 필요합니다. 
다음 2가지 명령어를 입력함으로써 나중에 배울 commit을 할 때 사용자 이름과 이메일을 기록할 수 있기 때문입니다. 
git config --global user.name ~~~
git config --global user.email ~~~

 

명령어 입력이 완료되었으면 자신이 원하는 위치에 빈 폴더를 만들고 해당 폴더의 위치를 복사합니다. 저는 바탕화면에 DTU_Git이라는 폴더를 만들었으며 cd 명령어를 통해서 이동을 해줍니다. 

 

이제 Github에서 새로 만들었던 repository의 내용을 그대로 자신의 컴퓨터로 가져와봅시다. 먼저 repository의 링크를 복사하기 위해서 아까 repository를 만들자마자 보였던 링크를 복사해봅시다. (밑에 사진)

 

복사가 되었으면 git clone 명령어를 통해서 포함된 내용들을 복사합니다. 하단의 사진과 같이 입력을 해주면 복사가 되는데 우리가 새로 만든 repository라서 안에 아무것도 포함되어있지 않으므로 경고문이 나오게 됩니다. 

그리고 자신이 만든 폴더에 가보면 우리가 github에 만들었던 repository가 그대로 복사되어 있는 것을 볼 수 있습니다. 

여기서 한 가지 개념을 설명드린다면 우리가 컴퓨터에 clone을 하여 가져옴으로써 개개인의 컴퓨터는 local 저장소의 역할을 하게 되고 github은 원격 저장소의 역할을 하고 있다고 이해하시면 되겠습니다. 

 

 

이제 우리의 폴더 (로컬 저장소) 내부에 clone 된 repository 폴더 안에 파일을 하나 만들어봅시다. testfile이라는 이름을 가진 txt 파일을 만들어주었습니다. 그리고 내부에는 "안녕하세요"라는 간단한 말을 넣어봅시다. 

 

이제 repository에 새로운 파일이 생성되었으므로 수정사항이 발생하였습니다. 새로운 수정사항을 알리고 원격 저장소에 보내기 위해서는 다음과 같이 명령어 실행을 해봅시다. 

Repository 폴더로 이동하여 add 명령어를 실행합니다. add 명령어를 통해서 현재 git이 추적하고 있는 수정된 파일이 working directory에서 staging area에 저장되게 됩니다. 

git commit 명령어를 통해서 staging area에 저장된 파일이 local repository로 확정이 되고 작업이 마무리되었다는 버전 등록을 수행하게 됩니다. 여기서 git commit 다음에 -m이 붙어 있는데 해당 명령어를 통해서 간단한 커밋 메시지를 작성하게 됩니다. 예를 들어서 어떤 점이 변경되었는지를 다른 사람이 보고 이해할 수 있도록 적어두면 좋겠죠??

 

이까지 단계가 우리의 컴퓨터에만 적용된 내용이었으며 이제 git push를 통해서 원격 저장소에 보내봅시다. 

git push를 입력하면 다음과 같이 github에서 만든 repository 내부에 우리가 만든 파일이 생성되게 되었습니다. 

728x90
반응형

태그

관련글 더보기

댓글 영역