본문 바로가기

For DEVELOPER

[GIT]GIT 기본 명령어

728x90
반응형

 초기설정: ~/.gitconfig 에 저장된다

1
2
git config --global user.name 자신의 닉네임
git config --global user.email 자신의 이메일
cs

 명령어 도움말 보는법(레퍼런스, 메뉴얼)

1
git 명령어 --help
cs

기본 명령어

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*버전=커밋ID*/
 
/*URL에는 원격저장소 뿐아니라 로컬저장소 경로도 포함될 수 있다.*/
 
git init : 저장소 생성
git init --bare : 작업이 불가능하고 기능만 수행하는 저장소 생성(.git 내 파일만 존재)
git clone URL : 원격저장소에서 복제해서 저장소 생성
git clone --depth 숫자 URL : 최신 커밋을 숫자만큼만 복제해서 가져온다
git add 파일 : git이 파일을 추적하도록 명령, 새로 생성되거나 변경된것 등
git status : git 저장소의 상태를 확인
git commit
git commit -a : 추적중인 변경된 모든 파일을 add한다(한번도 add안된건 X)
git commit -"메세지"
git commit --amend : 바로 이전 커밋을 수정한다. index의 변화없이 쓸 경우 커밋메세지만 수정되고,
            index가 변화했을 경우 반영되서 커밋된다.
git log : 커밋된 로그 조회
git log -p : 로그에서 출력되는 버전 간의 차이점을 출력하고 싶을 때
git diff 버전1..버전2 : 버전1과 버전2 간의 차이점을 비교할 때
git diff : git add하기 전(작업디렉터리)과 add한 후(index)의 파일 내용을 비교할 때
git reset --soft 버전 : 저장소만 이전 버전으로 돌아감
git reset --hard 버전 : 작업디렉터리까지 이전 버전으로 돌아감
git revert 버전 : 버전의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령
git branch : branch 목록보기, *있는게 현재 브랜치
git branch 이름 : 이름으로 branch 생성
git checkout 브랜치명 : 현재 브랜치에서 브랜치명으로 이동
git checkout 버전 : 현재 브랜치에서 특정 버전으로 직접 이동
git branch -d 브랜치명 : 브랜치명 삭제
git branch -D 브랜치명 : 브랜치명 강제삭제
git branch -b 브랜치명 : 브랜치만들고 바로 checkout
git branch -m 브랜치명A 브랜치명B : 브랜치명을 A에서 B로 바꾼다
git log --branches(모든 브랜치를 보여준다) 
--decorate --graph(라인으로 표시) 
--oneline(커밋한줄로 표현)
git log 브랜치1..브랜치2 : 브랜치1에는 없고 브랜치2에는 있는 것을 비교해서 보여준다
git diff 브랜치1..브랜치2 : 브랜치간 차이점 비교
git merge B브랜치 : 현재 브랜치에서 B브랜치를 불러와서 병합한다.
git rebase B브랜치 : 현재 브랜치의 조상(base)을 B브랜치의 최신 커밋(rebase)으로 바꾸고, 
파생된 커밋객체들과 B브랜치의 최신 커밋과 순서대로 병합해나간다. merge와 결과가 같지만
log에서 분기가 사라지고 일렬로 나온다.
git rebase --continue : rebase도중에 충돌이 났을 경우, 해결 후 마저 병합할때 쓴다.
git stash : 추적등록된(add 한번이상) 작업중인 변경사항들을 다른 곳에 저장해둔다.
git stash apply : 저장된 stash를 작업디렉터리에 불러온다
git stash list : 저장된 stash 리스트를 출력한다. {0}이 제일 최신, 
git reset을해도 stash 리스트는 지워지지 않는다.
git stash drop : {0} 최신 리스트 1개를 삭제한다.
git stash pop : apply하고 drop을 한다.
git reflog : HEAD의 변경이력(commit, reset 등)을 본다. {0}이 제일 최신
 
/* 원격저장소명엔 주로 오리지널(기본)이란 의미로 origin 를 많이 쓴다.*/
 
git remote : 원격저장소명을 출력
git remote -v : 원격저장소명과 URL을 출력
git remote add 원격저장소명 URL : 원격저장소 목록에 URL을 원격저장소명으로 저장한다.
 이후부터는 원격저장소명만 쓰면 된다.
git remote remove 원격저장소명 : 원격저장소명을 삭제
git push -u 원격저장소명 브랜치명 (ex. git push -u origin master) : 원격저장소명이 가리키는
원격저장소로 최신 커밋상태를 업로드한다. -u 원격저장소명 브랜치명 를 쓰면, 
로컬 브랜치와 원격 브랜치가 연결된다. 이후부터는 git push만 간단히 써도 push된다.
git push --tags : 로컬저장소의 태그들을 원격저장소로 업로드한다. github에서 releases탭이 활성화된다.
git pull : 원격저장소로부터 로컬저장소를 동기화하고 merge 한다
git fetch : 원격저장소로부터 로컬저장소를 동기화하지만 merge를 하지 않음
git fetch --prune : 원격 저장소에 더 이상 존재하지 않는 브랜치들에 해당하는 ref 들을 삭제
git log --branches --not --remotes : 푸쉬하지 않은 커밋의 수
git tag : 태그목록을 출력
git tag 태그명 : 현재 브랜치가 가리키는 커밋객체로 태그명을 갖는 태그를 만든다
git tag 태그명 브랜치명or버전: 브랜치가 가리키는 커밋객체 or 커밋ID로 태그명을 갖는 태그를 만든다 
(light weight tag)
git tag -d 태그명 : 태그를 삭제한다
git tag -a 태그명 -"메세지" : 주석을 달수 있는 태그를 만든다 (annotated tag)
git tag -v 태그명 : 태그의 자세한 정보(주석 포함)를 본다
cs

 

반응형