[Git, Github] Git , Github 기초

Yujin·2023년 1월 15일
0
post-thumbnail

1. Git

  • 분산 버전 관리 시스템(VCS, Version Control System)
  • 분산형이므로 여러 PC와 저장소에 소스코드를 저장할 수 있어 협업에서 용이
  • 프로젝트 파일의 변경 사항을 추적
  • 예를 들어 문서를 수정할 때 마다 비슷한 이름의 파일들이 쌓여가면 (ex. 찐최종, 찐찐최종, 찐막최종, 리얼찐최종, ...) 특정 파일을 찾기 어렵지만, git을 통해 기록하면 특정 시점 버전을 불러오기 편리하며 코드를 효율적으로 관리할 수 있다.

2. repository

  • git repository
    -git으로 관리하는 프로젝트 저장소
    -작업자가 변경한 모든 히스토리를 확인할 수 있다.

  • repository 종류는 크게 두 가지로 나뉜다.

    (1) Local repository

    -본인 컴퓨터에 파일이 저장되는 개인 전용 저장소

    (2) Remote repository

    -파일이 원격 저장소 전용 서버에서 관리되며, 다른 사람들과의 공유 및 로컬 버전의 프로젝트와 병합 가능

3. git의 3가지 작업 영역

(1) working directory (working tree)

작업을 하는 프로젝트 디렉토리

(2) staging area

git add한 파일들이 존재하는 영역
staging area에 있는 파일들만 커밋에 반영된다.

(3) repository

커밋을 하면 staging area에 있던 파일들이 repository에 저장된다.

4. git 기본 명령어

mkdir

  • mkdir 이름
    make directory - 디렉토리(폴더) 생성

cd

change directory

  • cd directory이름/
    해당 directory로 이동

  • cd ..
    부모 directory로 이동

git init

  • 비어있는, 새로운 저장소(repository) 생성
  • .git 이라는 디렉토리 생성. 이 디렉토리가 바로 repository

git config

  • config (configure)
  • commit한 주체를 git에게 알려준다.
  • 협업 시 commit 주체 파악
git config user.name "이름"
git config user.email "이메일"
git config --local user.name "이름"
git config --local user.email "이메일"
git config --global user.name "이름"
git config --global user.email "이메일"
  • config는 global과 local 모드로 설정이 가능한데, global 모드는 PC 내 모든 git의 관리를 받는 폴더에 대해 값이 설정되며 local은 현재 디렉토리에만 값이 설정된다.
    config의 default 옵션이 --local이므로 위 코드의 1,2번 줄로도 local 설정이 가능하다.

git add

  • staging area에 파일 추가

  • commit을 하기 전에는 commit할 파일들을 미리 지정해줘야 한다.

  • 수정된 파일의 모습을 commit에 반영할 것이라고 지정하는 것

    (1) git add 파일명
    특정 파일만 추가하고자 할 때 주로 쓰인다.
    cf) root-commit : 해당 커밋이 프로젝트의 첫 번째 커밋이라는 의미

    (2) git add 디렉토리명
    해당 디렉토리 내 수정사항이 있는 모든 파일들을 staging area에 추가

    (3) git add 파일1 파일2 파일3
    여러개 파일을 추가하고자 할 때 쓰인다.

    (4) git add .
    working directory 내 모든 파일과 폴더를 한 번에 staging area에 추가한다.

commit 메세지

  • git commit -m "메세지"
  • commit 할 때 해당 commit에 관한 정보를 담고 있는 메세지 남기기

git push

  • local repository의 내용을 그대로 remote repository에 반영

git pull

  • remote repository의 내용을 local repository에 반영

git reset

  • git reset 파일명
  • staging area에서 파일 제거

git status

  • git이 인식하고 있는 프로젝트 디렉토리의 현재 상태 출력
  • 수정한 파일들이 staging area에 잘 추가되었는지 확인 가능
  • 문제 발생 시 현재 상태 파악을 위해 활용하기 좋음

git help

  • git help 커맨드 이름
  • 사용법이 궁금한 git 커맨드의 공식 메뉴얼 내용 출력

cat

  • cat 파일명
  • 파일 내용 출력

git log

  • git log
  • 커밋 히스토리 확인
  • 가장 오래된 커밋이 맨 아래에 위치 (최근 커밋이 가장 상단에 위치)

0개의 댓글