0부터 시작하는 Django 공부 - Git 기본

Jaehong Lee·2022년 6월 23일
0
post-thumbnail

1. Git

  • Git이란? 버전 관리 시스템으로 형상 관리 도구인 프로그램이다. Git은 분산 관리 시스템으로 소스코드를 여러 개발 PC와 저장소에 분산해서 저장  그렇기 때문에 중앙 서버에 장애가 발생해도 로컬 저장소에 커밋을 할 수 있으며, 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능하다.

  • Github는 Git이 아니다. Github는 원격 저장소이다

    • GIT : 오픈 소스 버전 관리 프로그램으로 로컬에서 버전 관리
    • GITHUB : 버전 관리, 소스 코드 공유, 분산 버전 제어 등등이 가능한 원격 저장소. 즉, Git Repository를 위한 웹 기반 호스팅 서비스
  • 저장소 : repositories -> 사용자 컴퓨터에 특정 폴더를 로컬 저장소(local)로 만들어, Github/backlog/자체 서버와 같은 플랫폼에 원격 저장소(remote)를 만들어 원격 저장소에 저장시킨다

  • GIT의 영역

    • GIT은 4가지 영역으로 나뉘어진다
      1. working directory : 작업을 하는 local 폴더. git init을 통해서 git이 관리하도록 지정된 디렉토리이다
      2. staging area : index라고 부르기도 하며 commit을 준비하는 영역. 해당 영역은 .git 디렉토리에 단순한 파일로 존재하며, add를 통해 추가된 file들이 이 영역에서 commit을 기다린다
      3. local repository : working directory의 변경 이력들이 저장되는 영역. 즉, commit이 저장되는 영역이다
      4. remote repository : commit된 파일들이 push를 통해 저장되는 원격 저장소이다

  • 파일들은 4가지 상태로 나뉘어진다
    1. Modified : local repositories에 저장된 파일로 아직 commit하지 않았지만 변경이 발생한 상태
    2. untracked : add 되기 전의 파일 상태로 add하면 staged이자 tracked된 파일 상태가 된다
    3. staged : commit을 기다리는 파일 상태로 add를 통해 staging area에 추가된 상태
    4. committed : commit을 통해 repository에 추가된 파일 상태
  • 즉, untracked 파일을 add하면 tracked + staged 파일이 되고, 이 파일을 commit하면 committed 파일이 되며 unmodified 파일이 된다. 해당 파일을 수정하면 modified 파일이 되고, 이를 다시 add하면 staged 파일이 된다. 해당 파일을 commit하면 committed 파일이 되며 다시 unmodified 상태가 되는 순환이다

2. Git 설치 - console

3. local 저장소 생성

  • 3.1 local 저장소로 사용할 폴더 생성

  • 3.2 Git Bash 실행

    • Bash : Bourne Again Shell의 약자로, 유닉스 Shell 프로그램의 확장판
    • Shell : 키보드로 입력한 명령어를 운영체제에게 전달하여 입력한 명령어를 실행하게 해주는 프로그램
    • Git Bash : Window 운영체제에서 linux command를 사용할 수 있게 해주는 Shell
  • 3.3 Git 초기 설정

    • Git에 사용자명과 메일 주소 입력
    • Git 설정 내역은 사용자 홈 폴더의 .gitconfig 파일에 기록된다. 이는 config 명령어를 통해 설정한다
    • git config --list : 설정한 내용 확인 가능
    • git config --unset -- global user.name : global user.name 설정 삭제
  • 3.4 local 저장소 설정

    • git init 명령어를 통해 해당 폴더를 local 저장소로 만든다
    • .git 폴더를 삭제하면 해당 폴더의 local 저장소 기능이 삭제된다

4. commit 만들기

  • commit : commit은 변경 사항을 기록해놓는 것으로 시간순으로 저장된다

  • 왜 add를 하고 commit할까? 원하는 기능만 add해서 그것들만 따로 commit하기 위해서 이다

  • 4.1 파일 생성

  • 4.2 Git에 파일 추가

    • git이 이 파일을 추적할 수 있게 추가해야한다
    • git add . 하면 폴더 내부의 모든 파일을 추가시킨다
  • 4.3 Git status

    • Git의 관리 하에 있는 local 저장소의 작업트리와 인덱스 상태를 확인한다
    • branch master : branch 이름이 master
  • 4.4 Git commit

    • 변경 사항을 -m을 통해 message를 입력하여 변경 사항을 local 저장소에 기록한다
  • 4.5 commit 내역

  • 4.6 파일 변경

    • 파일 내용을 변경하면 git에서 추적하여 변경된 것을 알려준다
    • 만약 파일 내용을 원래대로 돌려놓으면 아무것도 안 뜬다
    • commit은 이러한 파일에 대해 기록하고, 기록된 사항과 비교하여 파일의 변경 사항을 감지한다
    • 변경된 파일은 다시 add, commit 해줘야 한다

5. 원격 저장소에 올리기

  • 5.1 Git hub repositories 생성

  • 5.2 원격 저장소 주소 복사

  • 5.3 원격 저장소 주소 입력

    • 저장소 주소를 origin이라고 부르겠다는 것이다. 다른 이름도 입력 가능하다
  • 5.4 Git Push

    • branch : 작업에 대한 줄기로 새로운 기능 개발을 위해 독립적으로 나뉘는 커밋
    • origin에 master를 넣어주겠다는 명령어
    • '-u'는 앞으로 작업할 때 자동으로 origin을 사용하겠다는 명령어로 차후에 git push 혹은 git pull만 써주어도 해당 origin 원격 저장소에 작업해준다
    • 실행 결과 : 파일이 원격 저장소에 저장됬다!
    • 파일 변경 내역과 commit 내역
    • git에 올리면 안되는 private 파일들은 분리해서 관리한다

6. Git 저장소 복제

  • 6.1 Git Clone

    • Git 저장소를 로컬 저장소에 복제하는 것
    • git clone '저장할 원격 저장소 주소' '원격 저장소를 저장할 폴더 이름'
    • 원격 저장소 내용이 저장하고자 하는 폴더를 생성하여 저장되었다
  • 6.2 Git log

    • 원격 저장소에 대한 commit 내역들이 모두 저장되어 있다
  • 6.3 Git push

    • 실행 결과
    • 파일 변경 내역과 commit 내역이 표시된다
    • commit 내역 보기
    • commit 내역

7. 원격 저장소에서 파일 가져오기

  • Git pull

    • origin에 있는 것을 master로 가져오겠다
    • 실행 결과 : tutorial2 폴더에서 수정하여 원격 저장소에 올린 파일이 가져와졌다
profile
멋진 엔지니어가 될 때까지

0개의 댓글

관련 채용 정보