Git 이란 소스스크립트를 효과적으로 관리하기 위해 개발된 '분산버전 관리 시스템'이다.
Linux 소스코드를 관리하는 목적으로 개발되었지만, 최근은 여러 개발자들이 누군가 필요할 법한 코드를 공유하고 같이 개발하는데 활용되고 있다.
# [Summary]
#1. 설치 및 설정
#2. 저장소(Repository) git 생성
#3. 파일 커밋리스트에 추가 & 커밋
#4. 코드 병합
#5. Github push 업로드
#6. 주의사항
# [Summary] 요약본으로도 기본적인 github 활용 가능
1. 브랜치 생성 및 전환
$ git checkout -b [branch name] = $ git branch [branch name] + $ git checkout [branch name]
2. 코드 수정
3. 변경된 파일 확인
$ git status
4. 변경된 코드 파일을 커밋 리스트에 추가
$ git add [file name] // git status 상의 변경파일 모두 add : $ git add .
5. 커밋생성
$ git commit -m "커밋 설명 작성"
6. 마스터 브랜치로 이동
$ git checkout mastser
7. 작업한 branch를 master 에 병합
$ git merge [branch name]
8. github 업로드
$ git push > 로그인필요
#1. 설치 및 설정
# 1-1. Git 설치
Linux OS: $ sudo apt-get install git
Windows OS : $ pip install git
※ 버전확인 : $ git --version
# 1-2. Git 설정
$ git config --global user.name "[사용자명]"
$ git config --global user.email "[메일주소]"
$ git config --global color.ui auto : 출력 메세지 색상설정
$ git config --global alias.co checkout : alias(단축키)설정 'checkout'을 'co'로 단축사용
#2. 저장소(Repository) git 생성
Github에 repository 묶음으로 저장되는 폴더단위를 git이라 부른다.
# 2-1. 로컬에 경로를 생성하고 github으로 업로드 할 수도 있고,
$ mkdir tutorial : 경로(폴더) 생성
$ cd tutorial : 해당 폴더 진입
$ git init : 해당경로를 git 저장소로 설정
>> Initialized empty Git repository in C:/code/tutorial/.git/
# 2-2. github에서 repository를 생성한 후 로컬로 다운할 수도 있다.
$ git clone [github address]
#3. 파일 커밋리스트에 추가 & 커밋
# 3-1. 현재 코드 변동사항 조회
$ git status
>> On branch master : master branch 사용중
No commits yet : 커밋이력 아직 없음
nothing to commit (create/copy files and use "git add" to track) : 커밋예정인 사항도 없음
# 3-2. commit 준비 - index 등록
$ git add [파일명] # 해당 파일을 commit 묶음 리스트에 추가 ※
$ git add . # git status 에 조회되는 모든 파일 인덱스에 추가
>> On branch master
No commits yet
Changes to be committed:
(use "git rm --cached ..." to unstage)
new file: README.md
new file: command.txt
new file: command4github.txt
# 3-3. commit 진행
$ git commit -m "[해당 업로드의 주요내용]"
[master (root-commit) b08b8c5] first commit
3 files changed, 147 insertions(+)
create mode 100644 README.md
create mode 100644 command.txt
create mode 100644 command4github.txt
# 3-4. commit 확인
$ git status
>> On branch master
nothing to commit, working tree clean
→ commit 하려고 index 등록해뒀던 파일들이 사라짐 == commit 완료
# 3-5. Commit 이력확인, 커밋정보와 작성자, 날짜, commit 내용 등 확인 가능
$ git log
>> commit b08b8c5f19527189613abf11e58e04b8443e4637 (HEAD -> master)
Author: [name] <[email]>
Date: Wed Sep 4 22:32:44 2019 +0900
first commit
#4. 코드 병합
# 4-1. 병합전 병합본이 될 브랜치로 HEAD 변경
$ git checkout [master]
# 4-2. 코드 병합
$ git merge [병합될 branch]
#5. Github push 업로드
$ git push
#6. 주의사항
Q. 특정 브랜치에서 파일을 수정&추가 후 커밋하지 않은 상태에서 '다른 브랜치로 checkout' or 'merge' 할 경우 오류발생
>> please commit your changes or stash them before you switch branches
>> please commit your changes or stash them before you merge
$ git stash # 현재 진행중이던 내용 임시저장 ( 잘못된 branch에서 작업중이었을 경우 내용이관도 가능 )
#6-1. 임시저장 관련 명령어
$ git stash list # 임시 저장된 변경내용 확인
$ git stash apply [stash 선택] # 가장 최근 임시 저장된 내용을 현재 branch에 적용만 ※ stash선택 ex) stash@{n}
$ git stash pop # 가장 최근에 임시 저장된 내용을 현재 branch에 적용 후 임시저장 삭제
$ git stash drop # stash에 저장된 내용 삭제
#6-2. GUI 기반 코드 버전&커밋 확인
$ gitk : GUI 기반으로 commit 변경이력 확인 가능
HEAD(활성화 브랜치)에 tag 달기 : $ git tag [tag name]
설명 추가 태그 : $ git tag -am "[디스크립션]" [tag name]
태그목록 확인 : $ git tag -n
태그 삭제 : $ git tag -d [tag name]
참고자료 : https://backlog.com/git-tutorial/kr/intro/intro1_1.html