Git이란 소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템'이다.. 

Git에서는 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다.

Git은 3단계의 작업으로 진행된다.

1. 로컬 저장소(Working directory)에는 개인의 실제 작업 파일이 있는 저장소이다.

2. 인덱스(Index)는 준비 영역(staging area)으로 임시 작업 공간이다.

3. HEAD는 최종 확정된 소스파일을 서버에 업로드(commit)하여 발행(push)하게 된다.

 

 

1. Git Bash 를 실행한다.

 

2. GIT 폴더 생성과 폴더 이동

$ mkdir xe.git

 

# 폴더 내용 확인시 (숨김파일 출력시 - a, 리스트 형태 - l )

$ ls -al

 

# 폴더 이동

$ cd /xe.git

 

# D 드라이브 이동할 경우

$ cd /D

 

# 네트워크 이동할 경우

$ cd //192.168.100.11

 

3. 파일 생성 및 편집

$ vim 파일명

# 새로운 내용을 추가하거나 편집할 경우, 키보드에서 i 키를 누르면 INSERT 모드로 전환된다.

# INSERT 모드 종료 - ESC 키

# 저장 및 종료 - :wq

 

# 파일 삭제

$ rm 파일명

 

# 파일 복사

$ cp 파일명 복사경로

 

4. GIT 초기화

$ git init

 

5. GIT 사용자 등록

$ git config --global user.name 아이디

$ git cofnig --global user.email 이메일

$ git config --list

 

6. GIT 상태 확인

$ git status

 

7. GIT STAGE에 등록 

## 모든 파일과 폴더 등록됨(보안이 필요한 파일이 폴더에 있을경우 함께 등록될수 있음)

$ git add .

 

## gitignore 에 등록된 경우에도 강제로 등록 및 추적을 시작함

$ git add 파일명 -f

 

## 대화식으로 추가할 경우

$ git add -i

 

8. 저장소 받아오기

$ git clone 저장소/경로

 

8. GIT 커밋

$ git commit -m "메세지"

 

9. GIT 등록과 커밋을 한꺼번에 수행할 경우

$ git commit -am "메세지"

 

10. GIT 로그

$ git log

$ git log -p

$ git log 식별자

 

11. 커밋된 소스 코드의 변경된 차이점 확인할 경우

$ git diff

$ git diff 식별자..식별자

 

12. 이전의 커밋된 버전으로 복원해야할 경우

$ git reset HEAD^

$ git reset HEAD~2

$ git reset 식별자 --hard

 

13. 파일 삭제

$ git rm -rf [경로/파일명]

 

14. 푸시(강제)

$ git push origin master -f -u

$ git push origin <브랜치(가지) 이름>

$ git remote add origin <원격 서버 주소>

 

15. 로컬저장소 갱신

$ git pull

 

저장소를 새로 만들면 기본으로 master 가지가 만들어진다.

다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면 master 가지로 돌아와 병합할 수 있따.

16. 브랜치 확인

$ git branch

 

17. 브랜치 생성

$ git branch 브랜치이름

 

18. 브랜치 전환(체크아웃)

$ git checkout 브랜치이름

# 브랜치 생성하고 전환을 한번에 수행할 경우 -b 옵션 사용

$ git checkout -b 브랜치이름

 

19. 브랜치 삭제

$ git branch -d 브랜치이름

# 병합하지 않은 브랜치를 강제 삭제할 경우

$ git branch -D

 

20. 브랜치 정보확인

# 모든 브랜치 확인할 경우

$ git log --branches --decorate --graph --oneline

 

# 브랜치간에 차이점을 비교할 경우(master에는 없고, A브랜치에 있는 것을 출력한다)

$ git log master..A브랜치

 

# 소스코드까지 비교할 경우

$ git log -p master..A브랜치

 

# 브랜치 소스 코드 비교할 경우

$ git diff master B브랜치

 

21. 브랜치 병합

master 브랜치로 A브랜치를 병합할 때 (master <- A )

$ git checkout master

$ git merge A

 

22. 병합과정중 충돌시

$ git add <충돌난 파일명> 

$ git rebase --continue

 

23. stash

커밋하지 않은 작업중인 디렉토리의 변경사항을 임시로 숨겨줄 때

$ git stash

$ git stash save

$ git status

 

# 임시 작업의 목록을 확인할 때

$ git stash list

 

# 감춰진 임시 작업에서 최근 작업을 다시 복원 할경우

$ git stash apply

 

# 최근 임시 작업을 삭제할 경우

$ git stash drop

 

# 복원과 드랍을 한꺼번에 수행할 경우

$ git stash pop

 

24. 태그 추가

$ git tag 1.0.0 식별자

 

25. 변경 내용 복원

$ git checkout -- <파일 이름>

$ git fetch origin

$ git reset --hard origin/master

 

26. 리모트 등록과 발행

# 로컬(origin)의 내용을 원격저장소 GIT이 설치되어 있는 경로에 등록한다.

$ git remote add origin ssh://접속아이디@192.168.100.25:44220/volume1/DATA/xe.git

 

# 연결 확인

$ git remote -v

 

# 변경 내용 발행 - origin(로컬)을 원격 master 브랜치에 발행

$ git push --set-upstream origin master

 

# 갱신 - 로컬저장소에 원격저장소의 내용을 가져오기

$ git pull

 

# 복제할 경우 - 원격저장소의 내용을 로컬폴더로 복제

$ git clone ssh://접속아이디@192.168.100.25:44220/volume1/DATA/xe.git 로컬폴더명

 

27. 자주 사용하는 명령어 정리

$ git branch ## 로컬 branch 확인

$ git branch -r ## 서버 branch 확인

$ git checkout -b TEST ## 브랜치를 만들고 바로 이동

$ git branch -d(D) TEST ## 브랜치 삭제

$ git status ## 현재상태(머지나 추가사항) 확인

$ git add 경로 ## 에러를 해결하고 추가하여 에러해결

$ git stash ## 임시저장

$ git stash pop ## 임시저장한파일 불러오기

$ git remote prune origin ## 깃랩에서 삭제한거 서버와 동기화

$ git push origin :TEST ## 서버에서 삭제하기

$ git remote 

$ git push origin TEST

$ git config http.postBuffer 104857600 ## git오류시 해결

$ git merge --squash TEST

$ git clone 주소

$ git remote set-url origin 주소 ## gitlap 저장소 변경시 설정

$ git remote -v ## gitlap 저장소 주소 확인

$ git checkout master

$ git checkout --orphan TEST

$ git rm -rf .

$ git push origin TEST

$ git clean -d -n  ## 미등록된 파일 삭제

$ git clean -d -f

$ git clean -d -i

 

번호 제목 글쓴이 날짜 조회 수
공지 IE에서 영상 또는 슬라이드 반응속도가 느린경우 해결방법 Study4U 2012.09.22 2516
87 Quill 에디터 사용법 Admin 2020.03.16 14
» 분산형 버전 관리 프로그램, GIT 사용방법 Admin 2020.03.16 14
85 Customize WP Widget Admin 2020.03.10 8
84 Customize WP Theme Control - Part 2 Admin 2020.03.07 5
83 Customize WP Theme Control - Part 1 Admin 2020.03.07 3
82 Customize WP Theme & WooCommerce Plugin Admin 2020.03.06 3
81 USB 지정된 파일을 찾을 수 없습니다 file Study4U 2017.09.23 1410
80 PHP 환경값 재설정 - for QNAP Study4U 2017.08.29 568
79 Oracle 12c 설치시 문제 해결 - 리눅스버전 Study4U 2017.07.01 676
78 redmoon DB 설치 file Study4U 2017.06.06 2161
77 CENTOS 7 초기 설정 가이드 Study4U 2016.07.24 2315
76 USB 메모리 인식불량일때 Study4U 2016.07.23 1016
75 "web" 공유 폴더에 있는 내 폴더를 권한없는 액세스로부터 어떻게 보호합니까? file Study4U 2016.06.08 677
74 icecast & ices0 in 'synology' ? synices : icestation Study4U 2016.06.04 939
73 웹브라우저에서 마우스 클릭시 팝업 광고 문제 해결방법 Study4U 2016.01.12 354
72 MySQL 사용자 권한 복구 file Study4U 2015.09.16 487
71 아피치에서 UserDir 설정 for QNAP Study4U 2015.08.13 169
70 jQuery Ajax Call to PHP Script with JSON Return Study4U 2014.11.18 2038
69 자바스크립트 변수값 PHP로 전달 방법 Study4U 2014.09.16 8240
68 iframe 내용 가져오기 Study4U 2014.09.16 5194