Git.기초

Vorhandenheit ·2021년 7월 1일
0

Git

목록 보기
1/4

1. Git

버전 관리 시스템 : 텍스트 에디터를 종료했다고 하더라도 이전에 작성한 내용을 보존해주는 시스템

  • Git : '분산형 버전 관리 시스템'

중앙 서버에 소스코드와 히스토리를 저장하는 것과 달리 소스코드를 여러 개발 PC와 저장소에 분산해서 저장

소스코드를 과거의 특정시점으로 되돌리거나 변경사항을 취소할 수 있음

  • Github : Git Repository를 관리할 수 있는 클라우드 기반 서비스

Github를 통해 여러 사람들이 공유하고 접근할 수 있음

Git을 지원하는 웹호스팅 서비스 기능을 통해 push, pull request에 반응해 자동으로 작업을 실행하게 할 수 있음

오픈소스 : 소스코드가 공개된 소프트웨어


스냅샷 : 특정 시점에 생성된 백업 복사본
커밋 : 하나하나 스냅샷을 만들어주는 작업


2. Git 4가지 영역

1) Working Directory(작업영역)
실제 프로젝트 디렉토리
실제 코드의 추가, 수정, 삭제 작업이 이루어지는 영역

2) Repository(저장소)
파일, 폴더를 변경 이력별로 저장해 두는 곳

  • Local Repository - 내 개인 저장소
  • Remote Repository - 온라인 서버상의 저장소, 여러 사람 공유 가능

3) Staging Area(index)
커밋시 반영되는 파일 보관

4)Stash
위의 3가지 영역과 다른 별개의 임시 영역
임시적으로 작업사항을 저장해두고 나중에 꺼내올 수 있음

파일 상태

1) Untracked 상태
파일을 생성한 후 한번도 add하지 않은 상태

2) Track 상태
파일이 Git에 의해 그 변동사항이 추적되는 상태

  • staged 상태: 커밋이 가능한 상태, staged area에서 add하는 작업 필요

  • Unmodified 상태 : 현재 파일이 최신 커밋 파일과 비교하여 바뀐게 없는 상태

  • Modified 상태 : 현재 파일이 최신 커밋 파일과 비교하여 바뀐게 있는 상태, 아직 staging area에 들어가지않음

3. Git 명령어

  • Fork : Remote Repostiroty에 오픈 소스 코드를 자신의 원격! 저장소로 가지고 오는 작업

  • Clone : Remote Repository에 있는 코드를 내 컴퓨터 저장소로 가지고 오는 작업


  • Push : 내 컴퓨터 저장소, Local Repository에 기록해 놓은 commit을 Remote Repository에 업로드 하는 작업

git push

Remote Repository에서 내 Local Repository에 바로 가지고 오는 작업
pull은 clone과 비교했을 때 변경된 사항들만 다운받는 걸 의미!

  • git pull <shortname> <branch> : Remote Repository에 해당 branch 내용을 Local Repostiory로 가져옴

*merge로 인해 충돌할 경우

  • Accept Current Change: 내가 수정한 내용으로 파일에 반영할 수 있음

  • Accept Incoming Change : Remote Repository의 내용으로 파일에 반영할 수 있음

  • Accept Both Change : 변경사항 모두를 반영

  • merge commit : 수정을 마치면 병합 커밋을 생성해 주기 위해 staging area로 파일 추가해야함


  • Pull request : GitHub의 기능, 내가 제안한 코드 변경사항에 대한 반영여부 요청

  • git push origin branch : 로컬 저장소의 변경사항을 원격 저장소의 브랜치에 반영


  • init : 디렉토리를 Git repository로 변환하거나 새로운 repository를 초기화하는데 사용

  • status : 명령어를 통해 staging area와 untracked files목록에 어떤 것들이 있는지 확인할 수 있음

  • add : staging area(index)에 파일 추가하는 명령어
    staged 상태로 만듬
    working directory에 작업중인 파일을 staging area로 올려 저장


git commit

변경사항 확정에 사용되는 명령어
staging area 현재 버전들 repository로 올려 저장하는 것

  • commit-m : staging area 파일들을 커밋

  • commit-a : 자동으로 add를 진행한 후 커밋

git reset

과거 커밋으로 돌아가고 싶을 때 사용, 커밋 취소 가능

  • reset : 직전의 add 이전 상태로 staging area로 되돌림

  • reset HEAD^ : 가장 최신 commit 취소할 수 있음
    HEAD^ : 현재 HEAD가 가리키고 있는 커밋의 바로 이전 커밋을 뜻함
    HEAD~2 : ^대신 숫자가 올 수 있는데, 커밋보다 2단계 전의 커밋을 뜻함

  • hard : commit 이후로 완전히 지움
    HEAD, Working Directory, Index를 싹 다 지움

  • soft : HEAD만 옮김

각 영역을 이해하고, 각 영역에 사용되는 명령어를 분리시켜서 이해하자, 그리고 어느게 상위 개념인지 익히자!

git remote

Local Repository를 Remote Repository에 연결하는 작업 필요

  • git remote add origin <Repository 주소>
  • git remote add pair <Repository 주소>
  • git remove -v : 현재 Local Repostiory와 연결된 모든 remote Repository 목록 확인
profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글