git 분산 버전 관리 프로그램
- 파일 히스토리를 저장하는 도구
- 코드의 히스토리를 관리하는 도구
- 개발되어온 과정 파악가능
- 이전 버전과 변경사항 비교 및 분석
- 원본 파일에서 수정 파일을 기록할 수 있다.
- 스냅샷 저장방식
- 중앙 집중식 버전관리
- 원격 서버에서 최신버전만 가져올 수 있다.
- 분산 버전 관리
- 복제한 로컬저장소에서도 별도의 다른 복제본을 만들어서 다른 피시에 저장할 수 있다.
- 히스토리에 대한 내용들도 같이 백업이 되어 저장되기 떄문에 용량이 부담되며, 병합을 했을 때 충돌을 하는 경우가 발생
- 분산버전 관리 : 과거 특정 시점으로 되돌아가거나, 한번에 여러 버전으로 개발자들이 동시에 작업이 가능하다.
- 성능 : bitkeeper 라이센스, 이전에 있었던 모든 버전 관리 프로그램보다 성능 월등이 빨랐다. 대용량 프로젝트를 효율적으로 관리할 수 있다.
- 커뮤니티 : 오픈소스 소프트웨어, 커뮤니티 기반으로 개발이 누구나 참여 가능, 활발했다.
- 공개 저장소 : 사용자들이 공개 저장소(github)를 이용해서 프로젝트를 공유, 프로젝트 관리/ 팀 개발 용이
- GUI : 그래픽을 통해 사용자와 컴퓨터가 상호 작용하는 방식
- CLI : 명령어를 통해 사용자와 컴퓨터가 상호 작용하는 방식
why CLI
- gui는 CLI에 비해 사용하기 쉽지만 단계가 많고 컴퓨터의 성능을 더 많이 소모
- 수많은 서버/개발 시스템이 CLI를 통한 조작환경을 제공
절대경로
- 루트 디렉토리부터 목적 지점까지 거치는 모든 경로를 작성한 것
윈도우 바탕화면의 절대 경로 = c:/users/ssafy/desttop
상대경로
-현재 작업하고 있는 디렉토리를 기준으로 계산된 상대적 위치를 작성한 것
현재 작업하고 있는 디렉토리가 c:/users일때 윈도우 바탕화면으로의 상대경로는 ssafy/desktop
./ : 현재 작업하고 있는 폴더
../ : 현재 작업하고 있는 폴더의 부모 폴더
- 텍스트 기반의 가벼운 마크업 언어
- 문서의 구조와 내용을 같이 쉽고 빠르게 적고자 탄생
- 태그를 이용하여 문서의 구조를 나타내는 것
#
- 갯수에 따라 제목이나 소제목을 나타낼 떄 사용
**강조**
굵은 글씨
- 프로젝트에 대한 설명 문서
- github 프로젝트에서 가장 먼저 보는 문서
- 일반적으로 소프트웨어와 함께 배포
- 작성 형식은 따로 없으나, 일반적으로 마크다운을 이용해 작성
- 특정 디렉토리를 버전 관리하는 저장소 << 히스토리, 태그, 브랜치
- git init 명령어로 로컬 저장소를 생성
- .git 디렉토리에 버전 관리에 필요한 모든 것이 들어있음.
- 새 폴더를 만들고 readme.md파일을 생성해주세요
- 이 파일을 버전 관리하며 git 을 사용해 봅시다.
working directory 현재 작업하고 있는 폴더
staging Area 히스토리(커밋)를 기록하기 전에 대기
rspository 버전 관리가 되는 파일.
staging Area 가 있는 이유
-
일부분만 커밋하고 싶을떄 : 워킹 디렉토리 골라서 커밋하고 싶을때...!
-
충돌을 해결할 때 : 협업 과정에서 여러 사람이 파일을 작업하게 되는데... 수정사항이 겹치는 영역에 대해서... Staging Area를 통해 충돌을 해소
-
커밋을 다시 고치고 싶을 때 로그 메시지만 고치는 게 아니라, 파일을 수정하고 다시 커밋(버전을 수정)하고 싶다면 'commit --amend'
working directory
내가 작업하고 있는 실제 디렉토리
staging Area
커밋 으로 남기고싶은 특정 버전으로 관리하고싶은 파일 이있는곳
rspository
커밋 들이 저장되는 곳
git add readme.md
staging Area 로 보내기
git commit -m " 할 말 "
커밋 하기
git add .
모든 파일 보내기
github repository
local repositiory
readme.md 수정하고 push하기.