F2)그니까 git이 뭐냐면

willowkim8·2021년 1월 1일
0

대전

목록 보기
2/2

수린아 이걸 읽으면 넌 행복해지고 넌 건강해지고

버전 관리

너 게임해 본적 있지. 3단계까지 clear 했을 때, 껐다가 다시 켜도 1단계로 돌아가는게 아니고 4단계로 바로 시작할 수 있잖아. 그게 바로 버전 관리 때문이야. 또 되돌아 가는 기능까지 있다면 1,2 단계도 다시 시도할 수도 있겠지?

우리가 코딩을 3단계까지 짰어. 근데 너랑 나랑 두가지버젼의 4단계를 저장해서 비교하고 싶을 수 도 있고, 10단계까지 짰는데 다시 중간 단계부터 수정을 해야 할 수도 있지. 그런 소스 코드 버전 관리를 해주는 시스템이 Git 과 Github이다 이거야.


Local & 원격 저장소

까리뽕삼하게 정리하자면
git은 버전 관리 시스템이고 github은 git을 관리하고 협업할 수 있는 온라인 서비스인거지
그러니까 git을 관리하는 온라인 서비스는 github을 제외하고 Gitlab이란 것도 있어.

-너 window 쓰는 거 아는데, Ubuntu도 쓸꺼니까 Ubuntu 위주로 간다.

참, 그리고 내 컴퓨터는 Local, GitHub 서버는 원격 저장소라고 부르니까 익숙해 지자
잔디 심는 거는 그때 만나서 이야기 했지? 진짜 시작한다


git과 github 연결 & repository

코드를 로컬에 저장해서 그걸 원격 저장소로 보내야 '아하 이 user가 새로운 코드를 만들었거나 저장했구나' 하고 잔디를 심어준다고. 많이 하면 더 찐한 잔디를 심어주겠지?

그럴라믄 우선 Git이랑 Github을 연결을 해야 보낼 수 있겠지? 또 그럴라믄! 로컬의 Git이 원격의 GitHub 계정 정보를 알고 있어야 되니까 연결을 해.

그리고 이 Git과 동기화해서 온라인으로 관리할 수 있는 원격저장소를 GitHub에서는 레파지토리(Repository)라고 불러. GitHub에서 'GitHub 서버'를 '레파지토rㅣ' 라고 한다고 생각믄 될 듯

다음으로는 Git으로 관리해 보고 싶은 로컬 저장소를 만들어야 돼. 간단하게 폴더를 만드는 거지. 그리고 그 폴더 하위에 있는건 모두 Git으로 버전 관리를 할 수가 있는겨. 버전 관리 아직 안까먹었지?

로컬 저장소 이름은 workplace라고 해보자.
이 workplace안에 git을 심으면 이제부터 이 폴더의 모든 변화를 기록할꺼야. 진짜 짱이지 않냐?


markdown

자 이제 그럼 확인 해봐야지. git이 변화를 감지 하는지 안하는지.

근데 너 README 들어봤어? 안 들어봤지. 요게 별거는 아니고 말 그대로 '나를 읽어봐라'라는 뜻이지. 즉 '이 레파지토리를 소개해줄테니 읽어보슈' 하는 느낌의 소개 글이지.
그리고 이건 MarkDown이라는 문서작업용 언어를 이용할꺼고 확장자는 md긴 한데, 또 모르는 거 나와서 쫀거는 아니지?
어따, 쫄지말고 일단 가서 읽어봐. 별거 아니더라고. 참고로 velog도 마크다운 이용하니까 너도 아무 글이나 써보면 딱 이해가 가부러. 꼭 써보고.
https://gist.github.com/ihoneymon/652be052a0727ad59601


git의 눈치

다시 git을 확인 해보자고.

우선 아까 로컬 저장소로 만든 workplace에 변화를 주자.
readme.md 파일을 만들어서 그 안에다가 너가 지금 가장 갖고 싶은 물건 한개를 써서 저장하자.
그럼 workplace에 변화가 일어났으니 아까 심어놓은 git이 눈치를 챘는지 확인 해야지.

git status

를 입력하면 바로

Untracked files:
    (use "git add <file>..." to include in what will be committed)
    README.md

요로코롬 눈치 챈거를 확인할 수가 있는거야.

근데 이게 눈치만 챈거고 저장은 안한거야. 그럼 git에다가 저장을 해야 되는데, 이게 또 약간 거시기할 수 있지만 일단 따라와(박력)


add & commit

add랑 commit 으로 git에 저장을 할 수 있는데, 두개가 약간 달라.
이걸 이해할려면 레파지토리의 구조를 먼저 알아야 해.
레파지토리는 구성은
작업폴더(Working directory) > 인덱스(Staging Area) > 저장소(Head -Repository)
으로 되어 있어.
작업폴더(Working directory) : 우리가 작업하는 폴더
인덱스(Staging Area) : 작업트리와 저장소 사이에 존재하는 가상의 준비 영역(Staging Area)

느낌으로 작업트리가 뭔지는 대충 감이 오지? 하지만 공부할 때 해부러야 되니까, 이 블로그 들어가서 읽어보슈 
https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html

add는 working directory -> index 으로 스크린샷처럼 순간을 기록하고
commit : index -> head 는 최종 확정본을 haed에 넣어두는 거지.
ㄴ아래 그림보면 이해가 더 잘 될꺼야.


push to repository

그런데 아직 원격 저장소에 저장된거 아니다 ㅎ
git은 정말 신중한겨

저장할 레파지토리를 우선 만들어야겠지?
원격 저장소 내부의 폴더라고 이해도 될 듯 합니다.

레파지토리 이름은 원하는대로! 나는 first-repository 로 생성했다.

아래 포스팅에서는 레파지토리를 생성하면서 REAMDE 파일을 함께 생성하도록 안내가 되어있는데, 우리는 이미 로컬저장소에서 README 파일을 만들었으니까 그 부분은 체크 해제해서 진행하까 됩니다.

https://post.naver.com/viewer/postView.nhn?volumeNo=24623326

만들었지?
이제 그럼 내 로컬 저장소랑 원격 저장소를 연결을 해야지.
HTTPS 라고 적힌 오른쪽에 https://... 라고 적혀있는 레파지토리의 주소를 이용하면 됩니다.
꼭 로컬 저장소 디렉토리 안에서

git remote add origin https://github.com/xxx/first-repository.git

영어 해석해봤어? https://~~를 origin으로 원격으로 더한다는 말이지?
귀찮게 계속 https://~~ 주소를 쓸 수 없으니까 origin이란 단어로 치환하는 거지ㅎ
참, xxx 부분은 본인의 username이 들어가야 해!

연결을 했으니까 이제야 원격저장소에 저장 해보자

git push origin master

push, push baby~
그저 밀어주면 됩니다. 쉽지요?


복습은 스스로

해보고 질문있으면 댓글 다시요.
질문 없으면 일목요연하게 정리해서 댓글 다시요.

profile
망고농장주인

1개의 댓글

comment-user-thumbnail
2021년 4월 6일

네 복습하러 미래의 제가 다시왔습니다
과거의 인유는 이해한듯 보이네 허허참

답글 달기