git : 프로젝트 버전 관리 프로그램
github, gitlab : git 기반의 저장소 서비스
Git Bash : git 사용에 특화된 명령어 실행기
git init
- 특정 프로젝트 디렉토리를 git으로 버전관리 할 수 있게됨
- .git 디렉토리 만들어짐(숨김파일)
git config user.name "사용자명"
git config user.email "이메일"
커밋(commit) : 특정 버전을 저장하는 것
working directory에서 staging area에 올려서 commit을 통해 repository에 저장
git add 파일 : 파일 staging area에 올리기
git add . : 새로 만들어지거나 수정된 파일 모두 staging area에 올리기
git commit -m "커밋 메세지"
- commit : staging area에 있는 파일들을 하나의 commit으로 만들어서 respository에 저장하는 명령어
- -m : 해당 commit에 대한 설명
- 커밋 메세지 : 다른 사람은 일차적으로 커밋 메세지를 보고 커밋을 파악 -> 자세할 수록 좋음
git log : 커밋 기록 출력
git diff 아이디 아이디 : 두 커밋 비교
- 아이디의 앞 네자리 정도만 적으면 구분할 수 있음
HEAD : 현재 내가 위치해있는 커밋을 가리키는 식별자 -> 이것이 가리키는 커밋을 바꾸자
git reset --옵션 아이디(or HEAD@{숫자}) : 헤드가 특정 커밋 가리키게 함
- --hard : respository, staging area, working directory 바뀜 ->위험해(이전 작업한거 날라갈수도)
- --mixed : respository, staging area 바뀜
- --soft : respository만 바뀜
git status : 새로 생성했거나 내용을 수정한 파일이 staging area에 잘 올라갔는지 확인
git reflog(reference log)
- HEAD가 가리켰던 commit 기록을 모두 보여주는 명령어
- 숫자가 작을수록 최근에 가리킨 것
컴퓨터에서 외부 저장소로 업로드의 장점
- 프로젝트 복구 가능
- 협업과 동시에 버전 관리 가능
git remote add orgin URL : 리포지토리 추가
- git remote : 외부 저장소 관리 명령어
- URL이 가리키는 외부 서버의 프로젝트를 원격 저장소로 지정하는데 이름은 orgin
- orgin 사용하는 것은 관습(깃랩, 깃허브에 있는 프로젝트가 기원)
- 매번 긴 URL적기 힘드니 orgin으로 대신 하겠다는 의미
git remote remove origin : 기존 리포지토리 remote 제거
git push -u orgin master
- 현재 내 프로젝트의 내용을 전부 orgin에 업로드
- master : master 브랜치를 origin이 의미하는 깃허브(깃랩)서버의 프로젝트로 올리기
- -u(--set-upstream) :내 컴퓨터의 master 브랜치가 깃랩 서버의 master 브랜치와 대응되도록 함
git clone URL : URL이 가리키는 원격 저장소의 프로젝트를 디렉토리 형태로 가져오기
git push : clone으로 가져왔을 때 git remote 안해줘도 됨
git pull(push와 반대) : 원격 조장소의 최신 커밋 당겨옴
최신상태가 아니라면 충돌이 일어나 push(업로드) 실패함
-> pull을 통해 최신화하고 작업하고 add . 후에 커밋하고 push하기
git pull
git add .
git commit -m "커밋 메세지"
git push