버전 관리 시스템 (Version Control System)
- 이전에 작성한 내용을 보존해 주는 시스템으로 편집 전 상태로 되돌리고 싶을 때 유용하며 Git이 대표적
- 파일의 변경 이력을 저장할 수 있고 어떤 변경 사항이 발생했는지 알 수 있음
- 변경 사항 저장 시 어떤 사항이 변경되었는지 코멘트를 작성을 해야 누가 어떤 파일을 추가, 수정, 삭제했는지 확인 가능
Git이란
1. Git
- Git : 소스 코드 기록을 관리하고 추적할 수 있는 분산형 버전 관리 시스템으로 변경 사항을 하이라이트로 확인 가능
- 스냅샷 : 특정 시점에 생성된 백업 복사본
- commit : 변경사항에 대한 스냅샷을 만들어 주는 작업을 수행, 이를 통해 이전 기록들에 대한 추적이 가능
- Git repository : Git으로 관리되는 폴더
2. Git repository
Remote Repository
- 원격 온라인 서버 상의 저장소로 작업한 코드를 업로드해 공유하는 공간
- Fork : 다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Remote Repository Repository로 가져오는 작업
- Pull : Remote Repository에서 변경 사항이 있을 때 Local Repository 로 가져오는 작업
Local Repository
- 내 컴퓨터의 저장소로 내가 작업을 하는 공간
- Clone : Remote Repository에 있는 소스 코드를 Local Repository로 가져오는 작업
- Push : 변경된 내용을 commit을 통해 저장해 준 뒤 Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드
3. Local Repository의 3가지 영역
- Untracked area는 : Git이 관리하고 있지 않은 영역
- Tracked area : Unmodified, Modified, Staged
*Tracked area에 들어온 파일들만 Git의 관리를 받을 수 있음
Unmodified
- 기존에 Commit했던 파일을 수정하지 않은 상태
Modified
- 기존에 Commit했던 파일을 수정한 상태
Staged
- commit이 가능한 상태로 수정한 파일을 commit하기 위해서는 staged area에 add하는 작업이 필요
Github
- Github : Git Repository를 관리할 수 있는 클라우드 기반 서비스
- Git으로 버전을 관리하는 폴더에 대해 Github을 통해 여러 사람들이 공유하고 접근할 수 있음
- Github에서 Code Review 등을 통해 협업이 가능
- 수많은 프로젝트의 오픈 소스들이 GitHub로부터 호스팅되고 있어서, 누구든 자유롭게 기여 가능
*오픈 소스 : 소스 코드가 공개된 소프트웨어로 어떤 수정사항이 있는지 commit 기록을 통해서 확인 가능 - Pull request : 내가 제안한 코드 변경사항에 대해 반영 여부를 요청하는 작업
*Push를 완료한 후 GitHub를 통해 Pull request
Git 명령어
Fork
#GitHub 다른 계정의 Remote Repository를 내 계정으로 가지고 옴
git clone <레파지토리 주소>
#원격 Repository를 로컬로 복사
git status
#로컬로 복사해 온 디렉토리의 commit 되기 전 상태 표시
#로컬의 staging, untracked files 확인 가능
#같은 부분을 변경한 내용이 존재해 자동병합 할 수 없는 경우 충돌 확인
git restore <파일명>
#처음 clone 받은 상태로 되돌림
#commit 혹은 staged 되지 않은 변경 사항 폐기
git add <파일명>
git add .
#commit 하기 전 해줘야 됨
#Untracked files를 Staging area로 추가해서 Git 관리하에 둠
git commit -m '커밋 메세지'
#수정 작업이 끝났을 때 변경 사항을 저장
git reset HEAD^
#Local 에서 commit 한 가장 최신의 내용을 취소
git push <origin> <branch>
#Local 에서 변경, commit 된 사항을 Remote Repository에 업로드
git log
#현재까지 commit 된 내역들을 터미널 창에서 확인
git init
#기존 디렉토리를 Git Repository로 변환
git remote add origin <Repository 주소>
#init한 디렉토리에 GitHub Remote Repository 연결
git remote add <name> <Repository 주소>
#나의 Local Repository에 상대방의 Remote Repository 연결
git remote -v
#현재의 Local Repository와 모든 Remote Repository 목록 확인
git pull <shortname> <branch>
#상대방의 Remote Repository의 해당 branch 내용을 나의 Local Repository로 가져옴
Reference
반응형
댓글