centralized version control system
중앙 서버가 모든 version 1, 2, 3 .. 파일을 가지고 있고 각 컴퓨터가 중앙 위치에서 파일을 체크한다.
- CVS, Subversion 등 ..
- 네트워크가 좋지 않으면 딜레이가 발생해 연결이 느려지고 튕기기도 함
distributed version control system
- 서버에서 버전을 통채로 가져온다. (텍스트 파일이라 그렇게 무겁지 않다.) commit, add 등 버전 만들고 난 뒤,
- 한번에 push 하여 중앙 서버에 보낸다.
- git 이 대표적
생성1
git init : .git 레퍼지토리 생성
생성2
git clone 복사주소 : 존재하는 레퍼지토리 복사
git status : 파일의 상태를 확인
git status -s : 파일의 상태 요약해서 보고 싶을때
?? : 아직 staging area에 올라오지 않은 파일
A : staging area에 올라온 파일
M : 수정되고 staging area에 올라온 파일
M : 수정되었지만 staging area에 올라오지 않은 파일
MM : 수정 후 staging 된 후 또 수정된 파일
git add 올릴파일 : staging area에 파일을 올리기
git diff : staging area에 있는 파일(a)과 작업 디렉토리에 있는 파일(b)와의 차이
git commit : staging area에 있는 파일만 보냄(커밋)
git commit -m " 메세지" : 커밋한 코드에 메세지 같이 보냄
git commit -a : 추적된 모든 파일을 staging area로 보내고 커밋 진행
git commit -amend : 전 커밋에 staging area 올려둘 파일에서 하나 빠트려 커밋 진행했을 때 그 후 add 파일 후 다시 이 명령어로 커밋 진행하여 하나의 커밋으로 여기고자 할 때
git rm : os 상 지운 파일을 git에게도 지워진 파일임을 알려주기
git mv : os 상 옮겨진 파일을 git에게도 옮겨진 파일임을 알려주기
git log : 커밋 진행한 히스토리 최신 ~ 예전 순으로 보여주기
git restore : 전 단계로 되돌아가고자 할때
git remote -v : 원격 저장소를 보여줌
origin : 복사해온 서버로부터 받아와서 생성된 디폴트 네임
git remote add : 새 원격 리포지토리를 생성
git fetch : 로컬 리포지토리에 없는 것을 원격 리포지토리로부터 데이터 받아옴(fetch)
git pull : fetch 후 현재 브랜치로 데이터를 자동 merge
git push : 로컬 데이터를 원격 리포지토리로 옮김
git remote rename or remove : 원격 리포지토리 이름을 rename or remove
git tag -a : 부가 정보를 포함하는 태그 생성
git tag : 간략한 태그 정보만 보여주는 태그 생성
git branch : 브랜치 생성
git branch -r : 원격 브랜치 목록 보기
git branch -a : 로컬 브랜치 목록 보기
git checkout : 브랜치 선택
git checkout -b : 브랜치 만들고 선택
git merge : 파일을 현재 checkout에 있는 파일에 합침
git branch -d : 브랜치 삭제
git branch -m {branch_name} {change_branch_name} : 브랜치 이름을 변경
git clone -b {branch_name} --single-branch {저장소 URL} : 특정 브랜치만을 clone
댓글