[Git] 자주 쓰는 Git 명령어 정리1

Seung Hyeon ·2023년 5월 16일
4

Git

목록 보기
2/4
post-thumbnail

💡 자주 쓰는 깃 명령어
깃(.git) 삭제 → rm -rf ./.git.
브랜치 전환 → git switch [branch name]
깃 원격 설정 → git remote add origin “https://”
깃 푸쉬 → git push origin master(or main or other branch)
깃허브 변경사항을 로컬로 가져오기 → git pull origin master
각각 다른 파일 커밋하기 → git commit -m“message” 파일1 파일2 …
원격 저장소 업데이트 → git remote update
깃허브의 원격 브랜치를 가져와서 로컬 브랜치로 등록 → git checkout -t origin/[branch name]

Git 이란?

: 버전관리시스템 (Version Control System)

: 파일의 변화를 시간에 따라 추적하고 관리하는데 도움을 주는 소프트웨어

Git 작업에 사용할 이름 확인

git config user.name

Git 작업에 사용할 이름 설정

git config --global user.name “Lee SH”

Git 작업에 사용할 이메일 확인

git config user.email

※ git bash에서도 ls cd 등 터미널 명령어 실행 가능


Git : 추가(Add) & 커밋(Commit)

git status : 저장소의 상태를 보고해주는 명령어

git init : 터미널에서 어느 디렉토리에 있든 새 저장소를 초기화하는 명령어

  • 우리가 있는 디렉토리가 무엇이든 새 저장소의 홈이 된다.
  • 프로젝트당 한번만 실행됨 (계속해서 초기화하지 않는다)

 
Git 저장소(폴더) 생성 및 초기화

  1. mkdir 이용하여 저장소 폴더 생성
  2. 생성한 폴더 위치에서 git init 초기화 작업 진행
  3. ( git status 진행 ) → ( ls -a 진행하여 .git 파일 있나 확인 )

※ .git 파일 삭제할 경우, 다시 처음부터 init 작업해야함

git init 명령어는 반드시 한번만! (해당 파일(저장소)가 이미 초기화가 되었는지 확인하고 싶으면 git status 명령어로 확인)

[정리] mkdir [folder name]cd [folder name]git init → ( git status )

 
Git Add

: 커밋하기 전에 핀셋을 사용해서 변경사항들을 선택하고 그룹화시켜줌

: 커밋하기 위해 변경사항들을 스테이지에 올리는 작업

  1. 작업폴더(FirstGit)에 outline.txt, characters.txt 파일 생성

  2. VSCode에서 outline.txt characters.txt에서 글 몇자 적고, 저장

  3. 두 개 파일을 모두 하나의 커밋으로 그룹화하기 위해 스테이지로 옮기기 (git add)

    • git add outline.txt + git add characters.txt

      ( or git add outline.txt characters.txt )

      ( or git add . )

      git add . : 전체 파일을 모두 하나의 커밋으로 그룹화

    • 중간중간에 git status 로 진행상황 확인

      (git add 전)

      (git add 후)

  1. 스테이지로 두 개의 파일을 옮긴 후, git commit -m “[my message]” (git commit)
    • add 하지 않고, 바로 한 줄 명령으로 스테이지의 모든 변경사항(modified file)을 올리는 방법: git commit -a -m “commit message”
      ※ new file은 add 및 commit 되지 않음 !!!!
  1. git log 을 통해 수시로 커밋 정보를 확인한다.

    • git log --oneline 추천 ⭐

    Git Log
    : 깃 저장소에 대한 커밋 정보들을 검색

    ( git log --oneline ) 추천!! - 훨씬 간결..

만약 파일들을 각각 다른 그룹으로 커밋하고 싶으면, 같은 A그룹으로 커밋하려는 파일들만 묶어서 add → commit 해주고, 또 B그룹으로 커밋하려는 파일끼리 묶어서 add → commit …. 이렇게 반복작업해주면 된다.

작업 폴더 안의 생성된 새 폴더를 커밋하고 싶다면,

  • 새 폴더 안의 특정 파일만 커밋 : git add [생성 폴더명]/[파일명]
  • 새 폴더 안의 모든 파일 커밋 : git add [생성 폴더명]/

 
.gitignore 파일 - Git이 추적하지 않았으면 하는 파일

  1. touch .gitignore (루트 경로에 생성)
  2. VSCode에 들어가서 .gitignore파일에 추적되지 않았으면 하는 파일명 입력

Git : 브랜치(Branch)

: 하나의 어플리케이션에 대하여 여러 명이 동시에 작업할 때, 다른 사람의 작업에 영향을 주지 않도록 독립적으로 진행하기 위해 사용되는 개념

: 우리가 원할 때마다 별도의 Context(Branch)를 생성할 수 있게 해줌

→ 만들어진 브랜치는 다른 브랜치와 병함함으로써 작업한 나용을 다시 새로운 하나의 브랜치로 모을 수 있음

보다 자세한 브랜치 개념은 이 블로그로

Master Branch (깃허브에서는 Main Branch 라고도 불림)

  • 새 저장소를 생성할 때 생기는 기본 브랜치 이름
  • git init 명령을 실행했을 때 자동적으로 시작하는 브랜치

 
Head

  • Master 브랜치에서 가장 최근에 커밋한 브랜치 포인터 (브랜치 “포인터” = 일종의 북마크 개념)
  • 현재 위치의 브랜치를 가리킴

git branch : 저장소에 있는 현재 존재하는 브랜치 목록을 보여줌

git branch [brahch-name] : 새 브랜치 생성

  • 브랜치를 새로 생성했지만 아직 현재 위지는 master 위치임

git switch [branch-name] : 새로 생성한 브랜치로 이동

  • 이제, Head는 master이 아닌 branch-name으로 변경됨
  • 신기한 점: 다른 브랜치로 이동하면, 별도 설정 없이도 VSCode가 알아서 구별해줌 VSCode에서 계속 편집하고 커밋한 후, 다시 master 브랜치로 이동하면, 이전 브랜치에서 작업한 코드들은 사라짐

git switch -c [branch-name] : 브랜치 생성 및 이동 (한줄로 해결)

git branch -b [branch-name] : 브랜치 생성 및 이동 (한줄로 해결)

git branch -d [branch-name] : 브랜치 삭제 (반드시 다른 브랜치 위치에서 실행)

git branch -D [branch-name] : 브랜치 강제 삭제 (반드시 다른 브랜치 위치에서 실행)

git branch -m [branch-name] : 브랜치 이름 변경 (반드시 해당 브랜치 위치에서 실행)

git checkout -t [remote-branch] : 깃허브의 원격 브랜치를 가져와서 로컬 브랜치로 등록

  • ex) git checkout -t origin/dev → 로컬 브랜치에는 dev 브랜치로 저장됨

git branch -a : 로컬, 원격 브랜치를 포함한 모든 브랜치의 목록을 보여줌

git branch -r : 원격 브랜치 목록을 보여줌

git branch -v : 각 브랜치별 마지막 커밋을 보여줌


Git Diff

git diff

: 워킹 디렉토리와 스테이지 영역 간 변경 사항을 비교

: git add, 즉 스테이지에 등록하기 전에 실행하는 명령어 (스테이지에 등록되기 전의 변경사항만을 보여줌)

git diff HEAD

: get diff와 달리, 스테이지에 등록한 후에도 변경사항을 확인할 수 있는 명령어

: 변경사항이 스테이지에 등록되었든 아니든 상관없이, 마지막으로 실행된 커밋 이후에 워킹 디렉토리에 있는 어떤 새로운 변경사항을 볼 수 있음

git diff --staged : 스테이지에 등록된 변경사항만을 보여줌

git diff HEAD [file-name] or git diff --staged [file-name]

: 해당 파일의 변경사항만 출력

git diff [branch1]..[branch2] : 두 브랜치 사이의 파일의 변경사항을 비교


Git Stash

git stash

: 커밋하지 않은 변경사항들을 임시 저장하도록 해주고 나중에 복구할 수 있게 해줌 (일종의 숨기기 기능)

※ 스테이지에 등록되었거나 등록되지 않은 모든 변경사항들 다 가능 (커밋만 안하면됨!)

git statsh pop : Stash에 있던 변경사항을 가져온다. (가져와서 계속 작업 이어서 함)

git stash apply : git statsh pop 기능과 비슷하지만, 다른 점은 변경사항이 여전히 Stash안에 있는 점이다.

git stash list

→ 출력 결과를 보면, 맨 왼쪽에 stash@{0}, stash@{1} …. 등등이 있는데, 이는 stash별 ID 임

git stash drop [stash id] : 특정 stash 삭제

  • ex) git stash drop stash@{0}

git stash clear : 모든 stash 삭제

profile
안되어도 될 때까지

0개의 댓글