Git - .git/ push / reset / .gitignore

markyang92·2021년 4월 23일
0

git

목록 보기
2/14
post-thumbnail

.git 디렉토리

  • .git 디렉토리 내용

HEAD 파일

  • HEAD파일 : localHEAD가 가리키는 ★local★ 브랜치커밋 해시를 담은 '파일의 위치'가 저장된 파일
  1. HEAD가 (local)master 일 경우
    • $ cat ./git/HEAD -> ref: refs/heads/master
  2. HEAD가 (local)mac 일 경우
    • $ cat ./git/HEAD -> ref: refs/heads/mac

refs/head/master

  • localmaster
  • $ git push origin HEAD:refs/heads/master = git push origin master

.git/config 파일

default .git.config

gerrit에서 .git/config

  1. original push command
$ git push origin HEAD:work
= $ git push origin HEAD:refs/heads/work
= $ git push origin HEAD:refs/for/work	# gerrit 사용 시
  1. 저 커맨드가 너무 귀찮다면 .git/config에 아래와 같이 입력
[remote "work"]	# gerrit 사용 기준
    url = http://user@gerrit.domain.com/test
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = refs/heads/work:refs/for/work
  1. 이제 아래와 같이 명령해도 1번의 커맨드와 같이 동작한다.
$ git push work

push

  • $ git push HEAD:refs/heads/master

status

특정 path만 status 보고 싶다.

$ git status <path>


reset

$ git reset <OPTION>


$ git reset --soft HEAD^

명령어를 시전해보자.

$ git reset --soft HEAD^
  • 커밋'만' 취소된 상태
  • 수정한 파일내용 그대로

$ git reset HEAD^

$ git reset HEAD^
  • 아직 $git add 하기 전 상태로 !!
  • 수정한 파일내용 그대로

git reset --hard HEAD^

$ git reset --hard HEAD^
  • 파일을 아예 수정사항 반영X 이전 커밋 그대로 돌려버림
  • 파일 수정한거 다 날라감

.gitignore

  • .gitignore
*.[oa]	# 확장자 .o || .a 인 파일 무시
!lib.a	# ! 는 '예외적으로 포함'한다는 뜻. 즉 lib.a는 추적함
*~	# '~' 로 끝나는 파일 무시
/build	# 루트 디렉터리에 있는 build 파일은 무시, 하지만 'subdir/build' 같이 다른 폴더 내 /build 는 포함
build/	# build/ 디렉터리에 있는 '모든 파일' 무시
doc/*.txt # doc/*.txt 무시, 하지만 doc/subdir/*.txt 등은 포함
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글