728x90
1. init
$ pwd
/Users/live/Document/git/hello-git-cli
$ git init
initialize repository
버전 관리를 위한 기본 폴더를 생성하는 명령어
(이 디렉터리를 버전관리 하기 시작해)
.git생김 git repository
working tree 파일을 만들고 수정하는 버전으로 만들어지기 전 단계
staging area 버전을 만들려할 때 버전관리할 일부 파일들 올림
repository 만들어진 버전
2. add, commit
$ nano *hello1.txt*
$ git status
working tree status
커밋의 상태를 보여줌
Changes not staged for commit ⇒ add
Changes to be Committed, Modified ⇒ commit
$ git add *hello1.txt*
add to staging area
working tree → staging area
파일을 추가 등록하는 명령어
$ git add .
온점(.)은 현재폴더에 있는 모든 파일을 의미
$ git commit
create version -m "Message 1"
staging area → repository
$ git commit -am ""
-a : add
-m : command line에서 직접 commit message 입력
add, commit 한 번에, 하지만 최초 한 번은 add해줘야 함(tracked)
3. diff, log
$ git diff
show changes
$ git log -p
$ git log --stat
show version
4. checkout
$ git checkout *6ac75fbe474f3ade4baff6aa81100614a93bf847*
과거의 commit을 확인하고 싶을 때 checkout을 사용
(git log → 수정하고 싶은 commit #)
이 커밋 아이디가 가르키는 버전을 만든 시점으로 돌아감
$ git checkout master
최신 상태로
$ git checkout commit# -b
이름으로 commit#에서 브랜치 생성
5. reset
$ git reset *6ac75fbe474f3ade4baff6aa81100614a93bf847*
이 버전으로 되겠다
$ git reset HEAD^
마지막 커밋 혹은 내가 선택한 커밋의 변경사항들을 unstage영역(작업영역)으로 옮기는 것
커밋만 삭제하고, 파일 변경 사항은 그대로 둠, 변경 사항들은 unstaged영역에 둠
커밋된 파일 내용을 유지하면서 작업영역으로 가져와 파일 내용을 수정할 수 있음
$ git reset --hard/--soft/--ㅡmixed HEAD^
hard : commit를 git에서 삭제, *수정하고 있던 것 까지 삭제*
soft: 되돌릴 커밋의 변경사항을 stage 영역으로 옮김, *수정하고 있던 건 살림*
HEAD^: HEAD 위치부터 1개 커밋(^) 삭제 (^^ 커밋 2개, ^^^ 커밋 3개)
⇒ github.com인 origin에서 커밋도 삭제해야함:
$git push origin master --force로 강제로 푸시를 해야함
HEAD가 가리키는 브랜치를 옮긴다. (--soft 옵션이 붙으면 여기까지)
Index를 HEAD가 가리키는 상태로 만든다. (--hard 옵션이 붙지 않았으면 여기까지)
워킹 디렉토리를 Index의 상태로 만든다.
$ git config --global core.editor "vim"
에디터 변경
$ git config --global user.name "[이름]"
$ git config --global user.email [이메일]
사용자 설정
$ git config --list
사용자 설정 확인
728x90