[7일차](생활코딩Git n)버전관리 시스템CLI
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 쉽게 이해했던 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'생활코딩- Git ' 과정을 수강하시길 바랍니다. (인프런에도 있음)
Git 설치..하려고했지만
Git이 설치 되어 있는지 확인 할려고 할때는
- git
내가 ...git을 언제 깔았냐
하는데 xcode설치하면 딸려온다고 한다. 땡큐 애플
버전관리의 시작
우선 적당한곳에 깃 전용 디렉토리를 만든다
- git init
git에게 관리를 시작하라는 명령어다.
git이 폴더를 만들며 관리를 시작했다.
버전만들기
- 버전의 구조
깃에는 세가지 공간이 있다
Working tree 작업물이 놓여있는공간이다.
Staging area 한 작업물이 수정이 완료되고 올려지는 공간이다.
Repository 버전이 완성되어 올라가는 공간이다.
아까 Git보고 관리하라고 했던 폴더에
새로운 파일을 만들어 보자.
smokingbird.txt 내용은 담배를 끊을 수 없는 슬픈 새의 한마디였다.
현재 스모킹버드의 위치 (파란색으로 표시)
Working tree 작업물이 놓여있는공간이다.
Staging area 한 작업물이 수정이 완료되고 올려지는 공간이다.
Repository 버전이 완성되어 올라가는 공간이다.
- git status
현재 디렉토리에서 자기가 관리하는 폴더의 현황을 알려준다
얼른 커밋하라고 유혹까지 한다.
- git add
git add smokingbird.txt를 입력하여
smokingbird.txt를 스테이징 아리아로 옮기자
현재 스모킹버드의 위치 (파란색으로 표시)
Working tree 작업물이 놓여있는공간이다.
Staging area 한 작업물이 수정이 완료되고 올려지는 공간이다.
Repository 버전이 완성되어 올라가는 공간이다.
- git commit
git commit을 입력해 커밋하면
에디터가 나온다
smokingbirdV1되시겠다
저장하기는
- esc누르고 밑에 명령어창에 :wq누르고 엔터
그리고 상태를 확인하자
현재 스모킹버드의 위치 (파란색으로 표시)
Working tree 작업물이 놓여있는공간이다.
Staging area 한 작업물이 수정이 완료되고 올려지는 공간이다.
Repository 버전이 완성되어 올라가는 공간이다.
워킹트리가 깔끔하고 커밋할게 없다
- git log
이 명령어를 통해 담배피는새 V1이 레포지토리에 올라간 기록을 볼 수 있다
그럼 수정사항을 올려서 V2를 만들고싶으면 어떻게 할까?
일단 스모킹버드를 수정해보자.
하지만 담배는 끊어야 한다고 생각하는 스모킹버드였다
그럼 git이놈이 수정된걸 인식한다.
add해서 스테이징 아리아에보낸다
- git commit -m " "
아까처럼 에디터를 활용한 방법도 있지만
git commit -m "남길메세지"를통해 메세지와 함께 커밋할 수 있다.
smokingbirdV2되시게따
여러개의 파일을 버전으로 만들기
일단 수정된파일 하나와 새로운 파일 하나를 만들자.
스모킹버드에 :( 이모티콘이 생기고
어떻게 담배를 끊는지라는 제목에 그냥 끊어라는 내용의 파일이있다.
현재 상태는
이러하다.
둘다 스테이징아리아에 보내버리겠다. 하지만 사적인 문서는 안보낼 수 있다.
둘다 그닥 사적이지 않기에 보내본다
그리고 커밋하자.
위에 오타났다 파일 둘 다 보내진거같다.
근데 어느파일이
어느버전에 연류되어 있는지 내가 확인할 수 있는가?
- git log —stat
바로 git lof —stat을 통해 알 수 있다.
버전간의 차이점 비교
우선 나노에딧을 통해 부정적이었던 스모킹버드를 긍정적인 스모킹버드로 바꿔줬다.
그런데 전에 스모킹버드의 상태가 궁금하고 그차이점이 궁금할 때는 어떻게 확인할 수 있을까?
- git diff
git diff를 입력하고 엔터한다.
예전에는 담배를 정말 끊기 힘들어 했었다.
그런데 이젠 자신감까지 붙은 smokingbird다
그런데 현재까지 진행한 작업을 전부 취소하고 싶다면 어떻게 해야할까?
생각해보니까 담배를 저렇게 쉽게 끊는건 말도 안된다
- git reset —hard
git reset —hard를 입력해고 엔터를 해보자
다시 부정적인 smokingbird가 되었다.
그렇다면 여태 내 깃의 타임라인을 살펴보자
- git log -p
위를 입력하고 엔터를 누르면 각 버전마다 타임라인을 보여준다.
가슴이 웅장해진다..
checkout 과 시간여행
우선 나의 깃로그를보자
그런데 내가지금 smokingbirdV2로 돌아가고싶다
그럴때
저 커밋옆에 복잡한 암호같은 숫자를 복사하고
- git checkout
옆에 붙여넣고 엔터하면
V2로 돌아간다
:(이모티콘도 없고 하우투큇스모킹도없다
그렇다고 걱정마라 아예삭제되고 그런건 아니다.
- git checkout master
마스터 버전으로 (최신으로)되돌려준다는 것이다.
되돌아 왔다.
사소한 것들 이지만 모르면 불편한 것들
- git add . 또는/git add 디렉토리명
현 디렉토리(.)또는 디렉토리명안에 있는 모든 파일들을 스테이징아리아로 옮겨준다.
스모킹버드의 내용을 수정해주고 beer파일을 하나 만들었다.
싹다 애드됨 스모킹버드 V4로 업데이트 해주고
애드와 커밋 둘다 동시에 할 수 없을까?
- git commit -am" "
애드와 커밋 둘다 해주는 명령어다
바로 ㄱㄱ
수정된건 커밋됐지만
한번도 직접 애드되지 않는파일은 저런 동시작업을 할 수 없다.
- 커밋 에디터를 vim으로 바꿔보자
git config --global core.editor "vim" 를 입력하고 커밋해보자
vim으로 바꼈다.
삭제-gitreset
아무래도 알코올중독에 sns는 너무했다
그래서 그냥 담배끊기어려웠던 v3으로 돌아가겠다
git reset —hard v3코드
그전에 작업했던 내용까지 다 삭제된다고한다.
작업했던내용은 살리고싶으면 hard 자리에 mixed나 soft를 넣으라고 했다.
스모킹버드를 건강하게 만들어보자
담배를 끊은 스모킹버드가 이제 healthybirdV1가되었다.
하지만 얼마 뒤 담배를 다시 피고 꼴초가 되어버리는데..
되돌리기 git revert
revert하고싶은 파일이 V3라면 그거보다 이전 커밋자료인 건강한새V1를 리버트 해야된다
git revert 973a8a77550d761017b02cce38097a4f5fc062e9 를 입력하면
에디터 창이뜨는데 리버트 윗줄에 리버트의 이유에대해 기술하면 된다.
담배를 다시폈기 때문이다..
로그를 보면 리버트기록이 나온다.
다시 건강이 나빠진 스모킹버드 였다.