💡 자주 쓰는 깃 명령어
깃(.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]
: 버전관리시스템 (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 status
: 저장소의 상태를 보고해주는 명령어
git init
: 터미널에서 어느 디렉토리에 있든 새 저장소를 초기화하는 명령어
Git 저장소(폴더) 생성 및 초기화
mkdir
이용하여 저장소 폴더 생성git init
초기화 작업 진행git status
진행 ) → ( ls -a
진행하여 .git 파일 있나 확인 )※ .git 파일 삭제할 경우, 다시 처음부터 init 작업해야함
※ git init
명령어는 반드시 한번만! (해당 파일(저장소)가 이미 초기화가 되었는지 확인하고 싶으면 git status
명령어로 확인)
[정리] mkdir [folder name]
→ cd [folder name]
→ git init
→ ( git status
)
Git Add
: 커밋하기 전에 핀셋을 사용해서 변경사항들을 선택하고 그룹화시켜줌
: 커밋하기 위해 변경사항들을 스테이지에 올리는 작업
작업폴더(FirstGit)에 outline.txt, characters.txt 파일 생성
VSCode에서 outline.txt characters.txt에서 글 몇자 적고, 저장
두 개 파일을 모두 하나의 커밋으로 그룹화하기 위해 스테이지로 옮기기 (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 후)
git commit -m “[my message]”
(git commit)git commit -a -m “commit message”
git log
을 통해 수시로 커밋 정보를 확인한다.
git log --oneline
추천 ⭐※ Git Log
: 깃 저장소에 대한 커밋 정보들을 검색
( git log --oneline
) 추천!! - 훨씬 간결..
※ 만약 파일들을 각각 다른 그룹으로 커밋하고 싶으면, 같은 A그룹으로 커밋하려는 파일들만 묶어서 add → commit 해주고, 또 B그룹으로 커밋하려는 파일끼리 묶어서 add → commit …. 이렇게 반복작업해주면 된다.
※ 작업 폴더 안의 생성된 새 폴더를 커밋하고 싶다면,
git add [생성 폴더명]/[파일명]
git add [생성 폴더명]/
.gitignore 파일 - Git이 추적하지 않았으면 하는 파일
touch .gitignore
(루트 경로에 생성): 하나의 어플리케이션에 대하여 여러 명이 동시에 작업할 때, 다른 사람의 작업에 영향을 주지 않도록 독립적으로 진행하기 위해 사용되는 개념
: 우리가 원할 때마다 별도의 Context(Branch)를 생성할 수 있게 해줌
→ 만들어진 브랜치는 다른 브랜치와 병함함으로써 작업한 나용을 다시 새로운 하나의 브랜치로 모을 수 있음
보다 자세한 브랜치 개념은 이 블로그로
Master Branch (깃허브에서는 Main Branch 라고도 불림)
git init
명령을 실행했을 때 자동적으로 시작하는 브랜치
Head
git branch
: 저장소에 있는 현재 존재하는 브랜치 목록을 보여줌
git branch [brahch-name]
: 새 브랜치 생성
git switch [branch-name]
: 새로 생성한 브랜치로 이동
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]
: 깃허브의 원격 브랜치를 가져와서 로컬 브랜치로 등록
git checkout -t origin/dev
→ 로컬 브랜치에는 dev 브랜치로 저장됨git branch -a
: 로컬, 원격 브랜치를 포함한 모든 브랜치의 목록을 보여줌
git branch -r
: 원격 브랜치 목록을 보여줌
git branch -v
: 각 브랜치별 마지막 커밋을 보여줌
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 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 삭제
git stash drop stash@{0}
git stash clear
: 모든 stash 삭제