Git 1
git
(1) 버전관리(vcs, 형상관리) 시스템의 한 종류
버전관리를 하는 이유
(1) source data + history 관리
(2) 협업, 작업 추적, 복구 등이 가능
버전관리 시스템의 종류
(1) 중앙관리형(CVCS) : CVS, SVN
(2) 분산관리형(DVCS) : Mercurial, Git
github
(1) git 기반의 서비스
(2) git을 호스팅 해주는 웹 서비스, 협업을 위한 기능을 제공
(3) 소스코드 보안이 중요한 경우 사용을 기피함
gitlab
(1) 설치형 버전관리 시스템(소스코드 보안이 중요한 기업에서 사용)
(2) 클라우드 버전 관리 시스템(10명 이하 무료)
(3) issue tracker, git remote repository, api, team, group 기능 제공
global username & email
(1) git config --global user.name username
(2) git config --global user.email email
crlf - windows
(1) windows - 가져올 때는 lf를 crlf로 변경하고 보낼 때는 crlf를 lf로 변경
(2) git config --global core.autocrlf true
editor
(1) git config --global core.editor editor
전체 설정 확인
(1) git config --list
Git 2
repository
(1) 소스코드가 저장되어 있는 여러 개의 branch가 모여있는 디스크상의 물리적 공간
(2) local과 remote로 구분
checkout
(1) 특정 시점이나 branch의 소스코드로 이동하는 것을 의미
(2) checkout 대상 : branch, commit, tag
(3) checkout을 통해 과거 여러 시점의 코드로 이동이 가능
stage
(1) 작업할 내용이 올라가는 임시저장영역
(2) 이 영역을 이용하여 작업한 내용 중 commit에 반영할 파일만 선별하여 commit을 수행
commit
(1) 작업할 내용을 local repository에 저장하는 과정
(2) 각각의 commit은 의미 있는 변경단위이고, 변경에 대한 설명을 commit log로 남김
tag
(1) 임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
(2) tag가 붙은 commit은 commit id (version) 대신 tag name으로 쉽게 checkout 가능
push
(1) local repository의 내용 중 remote repository에 반영되지 않은 commit을 remote repository로 보내는 과정
(2) 검증되지 않은 코드는 push하지 않도록 함
pull
(1) remote repository에 있는 내용 중 local repository에 반영되지 않은 내용을 가져와서 local repository에 저장하는 과정
(2) push 과정에서 충돌이 일어나서 push가 거절된 경우, pull을 통해 remote repository의 변경 내용을 local repository에 반영하여 충돌을 해결한 뒤 다시 push를 시도해야 함.
branch
(1) 특정 시점(commit 단위)에서 분기하여 새로운 commit을 쌓을 수 있는 가지를 만드는 것(?)
(2) 모든 branch는 최종적으로 다시 master branch에 merge되는 형식으로 진행 됨.
merge
(1) 하나의 branch를 다른 branch와 합치는 과정
(2) merge 과정에서 충돌이 발생하는 경우 diff를 수정하여 충돌을 해결한 뒤 merge를 진행할 수 있음
파일 만들기
mkdir git_ws
git에서 작업하기
git init
git에서 관리하는 파일 확인
ls -all
(실제 폴더에서는 보기 -> 표시 -> 숨긴 항목)
텍스트 파일 만들기
touch test.txt
git이 관리하는 폴더 상태 확인
git status
stage에 파일 추가
git add test.txt
commit 하기
git commit -m "first commit" test.txt
remote repository와 local repository 연결
git remote add origin remote repository 주소
(주소 사이 // 뒤에 닉네임:토큰@)
remote repository 정보 확인
git remote -v
Git 3
remote repository에 변경 내용 push
git push origin master(or main)
local repository에 pull 하기
git pull origin master(or main)
(ls 해서 pull한 파일이 추가돼있으면 연결된 것)
파일 내용 확인하기
cat exam.txt
텍스트 파일 만들고 내용도 넣기
cat > exam3.txt
This is git exam3.
(컨트롤+D)
readme 파일
(1) 프로젝트에 대한 설명, 사용 방법, 라이센스, 설치 방법 등에 대한 내용을 기술하는 파일
(2) 나, 직장 동료, 프로그램 사용자를 위해 존재
gitignore
(1) git 버전 관리에서 제외할 파일 목록을 지정하는 파일
(2) 사용자가 원하지 않는 파일들을 자동으로 commit 대상에서 제외
Git 4
local branch 조회
git branch
remote branch 조회
git branch -r
모두 조회
git branch -a
branch 생성
git branch
branch 이동
git checkout
branch 생성+이동
git checkout -b
local branch 삭제
git branch -d
remote branch 삭제
git push origin --delete
Git 5