#1. 수강 과목 : Git 이론
#2. 수강 콘텐츠 : 생활코딩 Git강의 정리
도저히 안 되겠어서 그냥 깃 강의를 듣기로 했다.
깃의 목적 : 버전관리 / 백업 / 협업
버전관리 : 비슷한 개념으로 save as 같은 느낌? 누적되어서 전에 하던 것도 저장된다. 그리고 그걸 마음껏 볼 수도 사용할 수도 있다.
백업 개념 보다 보니 이해 바로 된 것 :
로컬(즉 내 컴)에서 저장한 것을 깃에 업로드 해주는 것을 커밋,(다른 버전을 만듦) 그 커밋한 내용을 깃허브(원격저장소)에 업로드해주는 것을 푸쉬(최종 저장). 그리고 그걸 다시 가져오는 작업을 pull.
지금까지 깃1 수업이었는데 2, 3까지는 들어보면 나쁘지 않을 것 같다.
<GIT의 버젼관리>
1개의 파일만 수정할 때
워킹트리 : 수정한 파일들
스태이징 에리어 : 버전을 만드려는 파일들(커밋하는 것)
nano hello.txt (들어가서 수정)
git status (수정된게 빨간 글씨로 나오는지 확인)
git add hello1.txt
리파지토리 : 만들어진 버전들이 올라가 있는 것.
git commit -m "Message 1"(새로운 이력 커밋했다고 명령)
리파지토리로 올린 상태 확인은 git status 보면 비어 있음(커밋 완료)
git log 하면 상태 볼 수 있음(수정된 버전들 및 커밋된 것의 고유 넘버)
그냥 git add 하면 스테이징 에리어에 다 올라감
그 이후도 비슷.
만일 연루된 구분이 필요하다면?(리스트를 보고 싶다면?)
git log --stat
즉 여러 번의 버전이 올라갔을 때 버전별로 변화를 한 번에 리스트로 보는 방법.
git diff
워킹 트리 내에서 전 버전과 현 버전이 어떤 점이 차이가 나는지 화면에 표시해주는 것.
git log -p
모든 버전의 로그를 하나 하나 보여주는 것.(문제점 추적에 도움을 주는 것, 버전관리의 효용)
git checkout + ~~(돌아가려는 버전 고유 넘버)
-> 그 버전으로 돌아가서 새로 만들거나 추가한 모든 파일이 사라짐.
다시 원래대로?(마스터 단계)
git checkout master
git add .
git commit -am "Message4"
git commit
만 누르고 바로 하면 기본 에디터가 떠서 다양한 이름의 커밋을 할 수 있다.
git reset --hard ~~(버전 이름)
이 (버전 이름)이 되겠다! 라는 뜻.(수정하고 있었던 것까지 강력하게 hard로 지운 것임)
수정하던 건 살리고 싶다 : mixed로 바꾼다.
git revert (리버트 할 버젼)
잘 이해는 안 되지만 로그는 그대로 있지만 상태는 내가 원하는 버젼으로 돌아와있다는 것과 역순으로 해야 그 전에 했던 버젼들과 충돌이 안 일어난다고 하는 것까지는 이해 했다. 이건 시간이 지나서 다시 공부해야겠다.