특정파일의 변경을 기록한다. 즉 버전을 관리해주는 역할을 한다.
만약 어떤 파일로부터 몇가지 버전이 생기면 깃은 그 몇가지 버전을 한꺼번에 관리할 수 있게 해준다. 몇가지 버전에서 공통적으로 변경해야할 것이 있다면 한꺼번에 할수 있도록 해준다.
깃은 DVCS(분산형 버전 관리 시스템)인데 여기서 VCS(Version Control System)란 문서, 소스코드 등이 변경될때마다 관리해주는 것을 만한다.
누가 언제 어디서 무엇을 어떻게 변경했는지 다 관리하고 저장하는 거라 생각하면 된다.
전체 내용이 복사 및 저장되는 것이 아니라 각 버전의 변경사항만 기록되는 것이어서, 여러번 변경되고 저장된다고 하더라고 용량을 몇배로 차지하진 않는다.
깃에서 진행했던 각각의 내용들을 공유할 수 있게 각각의 내용들을 공유할 수 있게
공간을 제공하는 서비스다.
또한 실제로 회사에 입사해서 프로젝트 완료된 것을 제출할때, 완료한거지만 수정해서 최종 완료 될때까지 작업물은 계속 팀원들과의 협업을 통해 왔다갔다 할것이다.
사람들과 팀 프로젝트가 다반사일텐데 깃허브 서비스를 이용하면 각각 구성원들이 작업해서 올린 내역을 다운로드하고 거기에 내가 작업한 작업들을 전송하는 식으로 일을하게 되는데, 이럴때 깃허브가 매우매우 유용하게 작용한다는 것.
환경설정할때 이름과 이메일 등록하기.
git config--global user.name "kim"
git config--global user.email"rlawlgns077@naver.com"
현재 내 위치보는법 - pwd
잘 설정됬는지 확인하는 법 - git gonfig--list
*현재 폴더를 git로컬 저장소로 등록 - git init하면 폴더 옆에 라고 표시된다고 한다.
*로컬 저장소에 먼저 등록해야 원격 저장소에 저장 가능.
*git add폴더이름 or git add . 하면 현재 폴더의 모든 파일을 인덱싱함.
[커밋하기]
*git commit -m'first commit' git commit -m [설명]하면
-m 옵션이 다음에 설명이 온다는 것을 표시한다.
*git remote 원격 저장소 추가하기
github사이트에서 새로운 프로젝트 생성하기
git remote[단축이름][url]
git remote add origin https://github.com/..... /....
repository에 연결이 되고 나면
git push + 리모트 저장소이름 + 브랜치 이름
git push origin master 하면 데이터 전송창이 뜨면서 gitbub에 잘 올라감을 확인할 수 있다.
폴더 삭제는 git rm-r blog 또는 git rm myfile.txt
[재커밋]
git commit-m'delete blog'
git commit -m 'modify file'
라고 입력하면 로컬저장소에 커밋됐다.
git push origin master
하면 다시 원격저장소에 커밋된다.
git merge --no-ff 파일명 치면 터미널에 commit 메세지를 입력하라는 창이 뜬다. 아래 순서대로 commit 메세지를 입력하면 된다.
git pull/git merge/git rebase 등의 명령어 수행 도중에 충돌이 발생하면 해결해야한다.
unmerged paths: 목록에 있는 파일들이 충돌 해결이 필요한 파일들이다.
(해당 파일을 수정하려면 수정 후 git add나 git commit)하면 충돌 해결한 커밋(merge-commit)이 생성된다.
만약 충돌 발생 이전으로 되돌아 가고싶다면 git merge --abort명령어로 되돌아갈수있다.
**
내 pc에서 git pull 명령어로 합치기를 시도하면 source.cpp가 충돌해서
중간에 이런 기호들이 나올텐데
=======,>>>>>>>>,<<<<<<< 을 지우고 그 안의 코드를 필요에 따라 수정한 뒤 저장.