[Git] Git 기본개념

Baoro·2022년 2월 9일
0

Git 익히기

목록 보기
2/2

사전스터디 당시에 git을 한두번 사용해봤지만 여러 블로그나 유튜브를 보며 따라 써본게 다였기 때문에 이번 git session 과정에서 많은 어려움을 경험했다. 우선 Git의 명령어 부분을 제대로 익히지 않았고, Terminal창과 VSCode내의 Terminal창이 연동된다는 것을 처음 알게 되었다. 또한 init부터 push까지 전체적인 과정을 익힐 수 있었다. 일단 오늘 익힌 git의 기본적인 사용법을 정리하고 추후에 git의 세세한 사용법을 정리하는 것이 목표이다.


1. Git의 정의, 필요성

Git이란? Version Control System (VCS)
어떤 버전을 관리하는 시스템


위 그림을 보니까 내가 대학생이었을 때 레포트를 써가면서 작성이 끝날 때까지 수없이 수정하고 저장했던 기억이 났다. 수정본이 1~2개 정도면 기억해낼 수 있지만 위 그림과 같이 양도 많고 시간이 많이 지났으면 어떤 내용인지 기억이 나지 않을 것이다.
하지만 git을 사용하면 다음과 같은 문제를 해결 할 수 있다.

  • 수정할 때 마다 파일을 새로 만들지 않아도 된다.
  • 협업 시 누가 어떤 코드를 작성하고 수정하였는지 log를 이용하여 알 수 있다.
  • 백업을 해놓았기 때문에 시간이 지나도 안전하게 보관할 수 있다.
  • 언제든지 이전 버전의 코드로 돌아갈 수 있다.
  • 하나의 프로젝트를 두고 개발자들이 쉽게 협업할 수 있다.

2. Github의 정의

Github란?
깃허브(Github)는 분산 버전 관리 툴인 깃(Git)를 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다.

Git vs Github

처음에는 Git과 Github가 동일한줄 알았다. 하지만 이제는 그 차이점을 알 수 있다.
Git은 프로젝트 버전관리를 도와주는 시스템이고, Github는 git을 사용한 프로젝트들을 관리하게 해주는 호이스팅 서비스 저장소라고 생각하면 된다. 또한 Git은 내컴퓨터에서 local로 관리를 하기 때문에 네트워크가 필요없다.

Github의 역할

  1. git 저장소
  2. 개발자들의 Social Network

3. 명령어

  1. git 시작 : git init

우리는 게임을 하면서 싸움을 시작할 때 "이니시"한다고 한다. 그것과 비슷하다고 볼 수 있다.
이 명령어는 프로젝트 폴더 내에 숨겨진 .git디렉토리를 생성한다. 그러면 우리는 이 폴더를 기록하겠다는 것이다. 그래서 프로젝트파일이 아닌 C-Drive 같은 곳에 생성하면 나의 사생활이 다 기록되고 노출 될 위험이 있다.

  1. git 상태 확인 : git status

지금 내가 어디에서, 어떤 프로젝트에서, 어떤것을 올리고 있고, 어떤것들이 변경되어 있고, 아직 안올라갔는지 등을 확인 할 수 있다.

  1. 파일 수정 이력 기록 준비: git add

이건 일단 기록을 한 것은 아니고, 기록을 할 '준비'를 하는 것이다. 예를들면 마트에서 결제하기 전에 장바구니에 담는다는 개념이다.

  1. 파일 수정 이력 기록 : git commit

내가 장바구니에 담은 것들을 기록하는 명령어이다. 게임을 할 때 세이브포인트를 저장하는 것과 같다고 보면된다.

  1. commit 이력 보기 : git log

어떠한 내용을 수행한 세이브포인트인지를 이 명령어를 통해 알 수 있다. 예를 들어 초기세팅완료, 내부스타일변경등 어떤 작업을 했는지 간단하게 알 수 있다.


4. 실습내용

  • Desktop디렉토리로 이동해야하기 때문에 cd(Change Directory)를 이용한다.
    -> cd Desktop

  • 만든 파일이 있으면 그 파일로 이동한다. 난 sang파일이다.
    -> cd sang

  • 내 현재 위치를 확인을 한번 해본다.
    -> pwd

  • 현재 위치의 디렉토리에 있는 파일이나 디렉토리를 확인을 한번 해본다. 뒤에 -al은 숨김파일까지 확인가능
    -> ls -al

  • 이 폴더에서 기록을 하겠다고 정했으면 이 명령어를 입력한다.
    -> git init

  • 다시 ls -al을 처보면 .git 숨김파일이 생성된 것을 볼 수 있다.

  • 내 영문이름 파일을 생성한다. 여기서 touch는 파일을 생성하는 명령어이다. ls로 잘만들어졌는지 확인한다.
    -> touch lang.md
    -> ls

  • 이 파일에 들어가서 수정/저장을 하고 싶으면 이 명령어를 입력한다.
    -> vi lang.md

  • 파일에 들어가면 'i'를 눌러 insert모드에 들어가서 수정할 수 있다. 입력한 것을 종료하고 나가려면 ':q', 만약 저장하고 나가려면 ':wq'를 입력하면 된다.

  • 파일의 내용을 확인하고 싶다면?
    -> cat lang.md

  • git으로 생긴 변화를 확인하고 싶다면? (커밋됬는지? 어떤 파일이 트래킹됬는지? 등등)
    -> git status

  • 변경된 파일을 장바구니에 담는다.
    -> git add . (여기서 .은 현재 디렉토리 라는 뜻이다. 즉 현재 디렉토리의 모든 파일을 담겠다는 뜻)

  • 장바구니에 담았는지 확인
    -> git status (제대로 담겼으면 'new file: ' 이라고 뜰 것이다.)

  • 커밋한다. (장바구니에 담은 것들을 결제)
    -> git commit -m "1st commit" (-m 뒤에 문장은 전달할 메세지 내용이다)

  • 커밋된 내용을 확인해본다.
    -> git log

  • Github 에 들어가서 New repository를 눌러 새로운 저장소를 만든다.
    그리고 내 repository의 주소를 복사한다.
    이 주소는 내 local에 저장을 했지만 이것을 올릴 떄마다 어디에 올릴지 지정해준다. 이 주소는 origin이라는데에다가 저장해준다. 변수라고 생각하면 될 것 같다.

  • 원격 저장소에 연결한다.
    -> git remote add origin http://내저장소주소붙여넣기

  • 어디랑 어떻게 연결이 됬는지 다시 확인
    -> git remote -v

  • 저장소가 연결이 됬으니 내가 작업한 내용을 올린다. (master : 최종적으로 코드가 시작되는 공간)
    -> git push origin master

  • Github repository에 올라온 것을 확인하면 된다.

profile
꾸준히.... 깔끔하게.... 끝까지....

0개의 댓글