Git 기본 명령어 모음

da.circle·2023년 1월 10일
0

평소 많이 쓰는 git 명령어 및 개념 모음! 알아두면 좋을 것 같은 옵션들도 같이 정리했다.

🙂Git 설치 및 세팅

git 설치

https://git-scm.com/downloads

git 설치 확인

$ git --version

  • 위 사진처럼 설치한 git 버전이 뜨면 성공!

이름, 이메일 설정

$ git config --global user.name "이름"
$ git config --global user.email "이메일"
ex) git config --global user.name kim
ex) git config --global user.email example@email.com

repository 설정

$ git init

  • 폴더 내에 숨겨진 .git 디렉토리가 생긴다.
  • git은 .git디렉토리가 있는 폴더(저장소)에 대해 모든 변경사항을 추적하고 관리한다.


🙂add/commit

repository의 현재 상태 확인

$ git status

  • 어떤 파일이 변경되었고, 어떤 파일이 추가되었는지 등을 보여준다.

Staging area에 파일 추가

  • staging area : 커밋 준비가 된 변경 내용이 git 저장소에 기록되기 전에 대기하는 장소

git add

  • 파일 추가 명령어
  • 스테이징 영역(staging area)에 파일이 추가되고, git 관리대상이 된다.
  • untracked(추적되지 않음) 상태의 파일을 tracked(추적) 상태로 변경해야 git이 관리하게 된다.
  • git add로 파일을 추가하고 난 후 git status로 작업 디렉토리(working directory)와 스테이징 영역(staging area)의 상태를 확인한다.
    • 작업 디렉토리 : 커밋할 준비가 안된 변경 내용을 자유롭게 수정할 수 있는 공간

사용법

  1. $ git add 파일/디렉토리 경로 : 스테이징 영역에 넘길 파일 또는 디렉토리 경로를 입력
  2. $ git add . : 현재 디렉토리의 모든 변경 내용을 스테이징 영역으로 넘긴다.
    • 명령어를 실행한 현재 위치의 디렉토리 이하에서 발생한 변경만 넘긴다.
    • 최상위 디렉토리에서 실행한다면 -A 와 동일한 효과가 된다.
  3. $ git add -A : 작업 디렉토리 내의 어디에서든지 모든 변경 내용을 스테이징 영역으로 넘긴다.
  4. $ git add -p : 각 변경사항을 터미널에서 하나씩 출력하며 스테이징 영역으로 넘기거나 제외
    - 변경 내용이 많을 때 여러개의 변경 기록으로 나누고 싶을 때 사용하면 좋다.
    출처) git add 기본 개념/사용법

commit

버전관리

  • 버전 : 이전과 약간씩 다른 변화들을 구분하는 표시
  • 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있게 한다.

커밋(commit)

  • 시간에 따라 변화되는 내용만 관리하고, 코드가 변화된 시간 순서에 따라서 영구적으로 저장한다.
  • 새로 변경된 부분만 추출하여 저장한다.
  • 파일 이름을 변경하지 않고도 동일한 파일 이름으로 하나로 관리가 가능하다.
  • 커밋 명령을 실행하면 스테이지 영역에 등록된 코드의 상태가 이력으로 기록된다.

사용법

  • 커밋 시 커밋 메시지를 필수로 입력해야 한다.
  1. $ git commit -m “커밋메시지“

    • -m : 커밋 메세지를 입력한다.

    $ git commit -am “커밋메시지“

    • -a : commit 명령어를 실행하기 전에 워킹 디렉터리에 있는 파일을 스테이지 영역으로 등록한다.
    • 저장소를 새롭게 생성하고, 새 파일을 작성한 후라면 -a를 사용할 수 없다. git add명령어를 수행 후 -a를 사용할 수 있다.
  2. $ **git log**

    • 추가된 커밋을 확인할 수 있다.
    • 깃허브에서도 커밋을 확인할 수 있다.
  3. 메시지가 없는 커밋
    - ‘빈 커밋’이라고 한다.
    - 의미가 없는 커밋이라 커밋 메시지를 생략하고 싶을 때 사용할 수 있다.
    - $ git commit --allow-empty-message -m ""
    출처) Git교과서 : 4장 커밋

커밋 이력 확인

$ git log

특정 커밋 시점으로 코드 되돌리기

$ git checkout 커밋hash값

  • git log에서 보이는 커밋 hash값이다.

커밋hash값

.gitignore

  • staging area에 추가하지 않거나, git에서 관리하지 않도록 하고 싶을 때 사용한다.
  • 빼고 싶은 파일을 .gitignore파일에 작성한다.
  • 파일, 폴더는 한줄에 하나씩만 작성한다.
  • gitignore.io : .gitignore파일을 편하게 생성할 수 있다.


→ 원하는 운영체제, 개발환경 또는 프로그래밍 언어를 넣고 생성을 누르면 아래와 같이 자동으로 생성된다.(복사 붙여넣기하면 됩니다)


🙂Branch관련 명령어

모든 브랜치 확인하기

$ git branch

  • 현재 위치는 *로 나타난다.(위 사진에서는 현재 main브랜치에 위치해있음)

브랜치 이동하기

checkout

$ git checkout 브랜치명

  • feature/header에서 develop 브랜치로 이동하고 싶다면?
    feature/header브랜치에서 git checkout develop

    Git 2.23버전 이후 변경사항
    checkout 명령어가 가진 기능이 너무 많아서 명령어를 분리했다고 한다.
    switch
    restore
    ``

브랜치 생성하기

$ git branch 브랜치명

  • 새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영해서 생성된다.
  • develop 브랜치에서 feature/header 브랜치를 분기시킨 후에 바로 새 브랜치로 이동하고 싶다면?
    $ git checkout -b 브랜치명
    - develop 브랜치에 위치한 상태에서 $ git checkout -b feature/header

브랜치 명 변경하기

$ git branch -m 바꿀브랜치명

  • 현재 위치해있는 브랜치의 이름을 바꾼다.

브랜치 병합하기

$ git merge 브랜치명

  • feature/header 브랜치에 develop 브랜치를 병합해보자
    → feature/header 브랜치에서 git merge develop

브랜치 삭제하기

$ git branch -d 브랜치명

  • -d : 브랜치가 원격에 push되고 merge된 경우에 사용
  • -D : push, merge가 안되어있어도 강제로 삭제 가능

🙂GitHub Repository

Git vs GitHub

  • Git : 버전 관리 시스템. 시간에 따라 파일의 변경사항을 추적한다.
  • GitHub : Git을 사용하는 프로젝트를 위한 호스팅 서비스. 로컬 프로젝트를 원격 클라우드 기반 GitHub 저장소에 업로드 하고, public으로 설정한 repository를 통해서 다른 개발자와 교류도 가능하다.

Push

로컬 Repository를 Github에 Push하기(로컬 레포를 원격 레포에 반영하기)

  • 보통 레포지토리를 처음 만들면 아래 사진처럼 가이드라인이 나온다. 아래 적힌 순서대로만 해도 된다.
  • 로컬에서 git init을 하면 기본 브랜치로 master가 생기는데, main으로 바뀌었기 때문에 중간에 git branch -M main 작업이 추가되었다.

새 레포지토리를 만드는 경우
1. git init
2. git add .
3. git commit -m "commit 메세지"
4. git branch -M main
5. git remote add orign 레포주소
6. git push -u origin main

이미 있는 레포지토리인 경우
1. git remote add orign 레포주소
2. git branch -M main
3. git push -u origin main

profile
프론트엔드 개발자를 꿈꾸는 사람( •̀ ω •́ )✧

0개의 댓글