깃허브 공부를 좀 제대로 하고싶어서..강의와 문서 참고한 것들을 정리해보고자 한다!
1. GIT 이란?
깃 = Version Control System 버전관리시스템
2. git init : 현재 디렉토리에 대한 버전관리
- 새로운 git 저장소(repository) 를 생성할 때 사용하는 명령어
- git init 을 실행하게 되면 현재 디렉토리를 기준으로 git 저장소가 생성이 된다.
- 이때 .git 디렉토리가 생기게 되는데 이것은 그냥 생기는 것이 아니고 버전관리를 위한 중요한 메타정보가 담겨있다!
- 따라서 만약에 .git 디렉토리를 지우게 되면 모든 변경 이력이 사라지게 된다. ...
3. git config
git config --global
이 명령어는 특정 사용자에게만 적용되는 설정이다!
global 옵션으로 git config 파일을 읽고 쓸 수 있는 것인데 특정 사용자의 모든 저장소 설정에 적용이 된다.
git 을 설치하고나서 가장 먼저 해야하는 것은 사용자 이름과 이메일 주소를 적는 것이다.
// 유저정보등록
git config --global user.name <name>
// 유저 이메일 등록
git config --global user.email <email>
따라서 --global 옵션으로 설정하는 것은 딱 한 번만 하면 된다.
해당 시스템에서 해당 사용자가 사용할 때에는 이 정보를 사용하는데
만약 프로젝트마다 다른 이름과 이메일 주소를 사용할거라면 --global 옵션을 빼고 명령을 실행한다
4. git add
처음 git status 라는 명령어로 git 의 상태를 추적해보면
untracked 라고 뜰 것이다 이는 추적되고 있지 않다는 의미인데
이 파일을 깃한테 버전관리를 할거라고 말하기전까지는 아무런 상태도 가지고 있지 않다는 의미이다.
add 를 넣어주면 깃에게 명확하게 이걸 추적하라고 얘기해주게 된다.
=> 임시로 만든 파일은 배제하고, 꼭 필요한 파일들만 추적하라고 얘기해줄 수 있게 되는 것이다.
변경된 파일을 '스테이징 영역'에 추가하여 변경사항을 임시로 모아두는 곳이다.=> 즉 커밋대기상태!
* git add 의 과정은 왜 필요할까?
-> 커밋하나는 하나의 과정을 담고 있는 것이 이상적인데,
커밋의 시기를 놓치면 여러 과정을 포함할 수 있다.
add 라는 과정을 통해서 원하고자 하는 파일만 커밋할 수 있다. => 선택적 커밋가능함!
5. git commit
git commit 으로 실제 저장소에 변경사항을 기록할 수 있다.
commit 을 사용하면 누가,언제, 무엇을 변경했는지의 기록을 볼 수 있다.
git add 로 인덱스에 변경사항을 점진적으로 추가
git commit 으로 현재 내용과 변경사항등을 설명하는 로그메시지를 포함
6. git log
git log -p
> 각각의 커밋과 커밋사이에 소스 사이의 차이점을 알 수 있다.
차이점이 무엇인지를 보여줄 수 있음
git diff
> 특정 커밋과 커밋사이의 차이점을 알 수 있다.
// 기록들 보기
git log
// 정확한 저장소명 알아내기
git remote
>>origin
7. 커밋취소하기!
과거로 돌아갈 수 있다! but 위험하니까 함부로,섣불리 하지는 말자...!
git reset <특정 log>--hard
현재의 로그를 취소해서 과거로 돌아감
하지만 만약 협업을 하여 버전이 공유가 된 경우라면.. reset 을 절대로 사용하면 안된다!
=> 자신의 컴퓨터에 있는 버전만!