2장 git 기본 명령어 알아보기
지역 저장소 → 깃허브
git init
으로 지역 저장소 지정- 파일 수정
git add
로 수정된 파일을 스테이징 영역으로 옮김git commit
으로 지역 저장소에 저장git push
로 원격 저장소에 반영
깃허브 → 지역 저장소
git clone
으로 지역 저장소 전체를 복제하거나git pull
명령어로 변경사항만 내려받을 수 있음.
git init
지역저장소로 지정하면 .git
숨김 폴더가 생성된다.
해당 폴더에 파일, 브랜치, 설정 정보등이 담겨 있음.
보통 깃에 의해서 자동으로 관리됨.
git init 취소
.git 숨김폴더 삭제하면 됨
rm -rf .git
git 설정 파일 확인
cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[user]
name = usablechan
email = lch8910@naver.com
[remote "origin"]
url = git@github.com:usablechan/chapter1-basic.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
core 섹션은 깃의 동작 제어 설정, user 섹션에는 사용자 정보 저장.
gitignore 파일 설정
.gitignore
파일에 깃으로 관리 하지 않을 폴더, 파일 명시 가능
파일 상태 확인하기
git 작업 트리
작업 디렉토리
: 실제 작업중인 파일들이 존재하는 영역
스테이징 영역
: 작업 디렉토리 파일 중 깃이 추적하는 파일들 식별하는 영역
지역 저장소
: 스테이징 영역의 파일이 커밋으로 등록되는 영역
깃으로 파일 상태 확인
Untracked
: 작업 디렉터리에서 새로 생성한 파일
Tracked
: 추적중인 상태
스테이징 영역에 추가된 파일은 수정 여부에 따라서 Unmodified
와 Modified
상태로 분류됨.
스테이징 영역에 추가된 파일의 상태는 크게 2가지 분류
- Stage : 커밋으로 기록될 수 있는 상태
- Unstage : 파일에 변화가 있어서 바로 커밋 못함.
처음 add 되면 Stage 상태이지만 modified 되면 unstage 상태가 되고, 커밋하기위해선 재등록을 해줘서 Stage 상태로 만들어줘야함.
커밋 이해하기
HEAD 포인터는 현재 작업하는 브랜치의 최종 커밋을 가리킴.
HEAD → main 은 HEAD 포인터가 main 브랜치를 가리킨다는 뜻
git log
커밋 로그 조회.
git log
>> commit 9bfbb20ce2bbe538384d483cd6f6a4f511522637 (HEAD -> main)
Author: usablechan <lch8910@naver.com>
Date: Mon Feb 6 14:45:46 2023 +0900
Add .gitignore file
git log -p
: 파일 단위로 변경내용 보여줌 ( = git log patch)
git log -{숫자}
: 최근 몇개의 커밋을 보여줄지
git log --stat
: 커밋의 통계정보 보여줌
git log --pretty={option}
: 커밋 로그 보여줌. 여러 형식 있다고 함.
git log --pretty=oneline --graph
: 가시적으로 커밋 로그의 흐름 파악 가능이란다.
커밋 수정
커밋 메세지 수정하기
git commit --amend
: 마지막 커밋 에디터 화면 보여줌?git commit --amend -m "수정메시지"
커밋 파일 추가
git commit --amend --no-edit
: 추가 변경 내용을 기존 커밋에 반영함.
—no-edit : 커밋 메시지 수정하지 않겠다는 뜻.
커밋 저자 수정
git commit --amend --author
커밋 푸쉬
원격 저장소에 커밋 반영하기
remote 정보 확인
cat .git/config
git push {저장소} {브랜치}
git push origin main
>>Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 370 bytes | 370.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:usablechan/chapter1-basic.git
0140ffc..4a75444 main -> main
새로운 서버로 푸시
지역 저장소에 여러 원격 저장소 등록 가능하다고 했었음.
git remote add {저장소이름} {주소}
로 remote 추가 하면됨.
원격 저장소 복제하기
git clone "원격 저장소 주소" "새로운 저장소 이름"