-
TIL.47 Git& GithubTIL 2020. 11. 25. 15:31728x90
git이란 무엇인가
git : version control system(VCS) == 버전 관리 시스템이다.
version : 버전은 하나의 업데이트 기록이라 생각하면 된다.
version 관리란 대학때의 ppt.최종, 최종_1 최종의_최종, 최종_최종_최최종 ...등 버전의 변화를 각 파일들로 다루어왔는데
이를 버전 관리라 생각하면 되고
코드이 버전 관리를 해주는게 Git 이라 생각하자.
(Code의 histiory를 관리하는것) 협업하는 과정에서 굉장히 중요하기에 이러한 버전관리를 해주는것이 Git 이다.
코드 버전관리를 하는 이유는 뭘까
1. 수정할 때 마다 파일을 새로 만들면 관리가 힘들기 때문
(수정할때마다 파일 이름이 다다르면 뭐가 뭔지 이해하기 어렵다)
2. 언제든 이전 버전의 코드로 돌아갈 수 있기 때문
3. 이력을 남기기 위해
4. 하나의 프로젝트를 두고 여러명의 개발자들이 협업할 수 있게 좋은 조건을 만들어준다.
github란 무엇인가
1.Git 을 사용한 프로젝트의 저장소
2. 개발자들의 대표적인 Social Network로 생각하자.(open source)
git vs github 차이
1. git은 인터넷이 필요없이 내 local에서 사용할 수 있으며,
github는 인터넷이 있어야 연결을 해줄 수 있다.
결론
Git - 프로젝트 버전관리를 도와주는 시스템
Github 는 Git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스이다.
vim을 쓰는 이유
우리가 어떤 환경에서 개발할지 확신할 수 없는데
vim은 모든 에디터의 기본이 되는 에디터이기 때문에 익혀두면 무조건 유용하다
git 실습
mkdir git && cd git
터미널 명령어 중 && 의 의미는 git을 만들고나서 && 뒤에 있는걸 실행하라는 의미이다
(해당 명령어는 Tip 정도로 생각하자)
git이 관리하는 폴더로 만들어주는 명령어
git init
git init 를 하기전까지 어떤 파일은 그냥 파일일뿐이다.
숨길폴더 .git이 생긴다.(직접 까볼 일은 거의없으니 웬만하면 숨겨두자)
git status
현재 git의 진행상황을 알려줌
가장 많이 쓰는 명령어 중 하나이다.
파일을하나 만들어보면?
vim munshee.md
-> 파일이 없으면 만들어지고 파일이 있으면 파일을 연다
vim :q 로 나가지지 않을땐 :q! 를 넣자
추적하지 않고있는 파일을 (빨강)-> 너가 알고 있어야하는 파일임을 알려주자
git add .
명령어로 너(컴퓨터)는 이 파일을 알고 있어야해라고 말해주는것과 비슷하다.
또한, 여기서는 파일 하나만 생성하였던 경우지만 파일이 많아질때도 동일하다.
해당 명령어는 커밋 전에 반드시해야하는 명령어로 이해하자( 빨강 -> 초록이된다)
& 빨간색과 초록색의 차이
빨간색 : 추적을 안한다 (여기서 무슨 변화가 생기던 git이 모른다)
초록색 : 컴퓨터가 해당 파일의 변화를 추적한다는 뜻
git commit
- m : 메세지 플래그 이러한 것을 플래그라고 부른다
1개의 파일이 변경되었고, 1개의 줄이 입력되었다 1 insertion "munshee.md 파일 추가" 를 의미한다.
git log
해당 명령어로 이력 확인이 가능하다
commit 한 로그가 나온다
여기서 HEAD -> master 라는 의미는 내가 현재 머물고 있는 곳을 이야기한다
후에 알아보자
여기까지 모든 과정은 인터넷이 없어도 할 수 있다.
Github에 올려보기
Push - 나의 git을 github로 올린다는 의미
pull - 남의 거를 받아온다
Github에 푸시하고자하는 local repostiory를 만들었다는 가정하에 아래 명령어로
나의 local repostiory 를 Github에 올릴 수 있다.
먼저 Github에 Git_first 라는 repostiory를 만들고 진행한다.
1. git remote add origin https://github.com/Muntari29/Git_first.git
2. git branch -M main
3. git push -u origin main
git remote add origin https://github.com/Muntari29/Git_first.git
(도착지를 정해준다는 느낌)
아래 명령어는 local 저장소를 origin이란 이름을 가진 remote 주소를 추가해준다는 의미이다(복붙하면된다)
git remote add origin https://github.com/Muntari29/Git_first.git
(99% origin 이라는 이름을 가진 remote 주소로 추가해주기 위해 origin을 사용한다)
git branch -M main
master 브랜치라는 이름을 main으로 바꿔준다 (이유 인종차별때문에)
git push -u origin main (나중에 git push만으로 main브랜치를 올리기 위한 기능)
내가 올리고자하는 브랜치를 깃허브의 origin main에 다가 보내겠다는 의미이다.
매번 브랜치보다 보내기 귀찮다 어짜피 나는 main에다가만 보낼거기 때문에
계속된 작업에서 git push 만을 사용하기 위한 영리한꼼수(?) 정도로 생각하자
(만약 브랜치 A 라고본다면
나의 로컬 브랜치 이름은 A Git-hub에서의 브랜치 이름은 A main?)
git remote add origin https://github.com/Muntari29/Git_first.git
git branch -M main (마스터 브랜치의 이름을 main으로 바꿔준다 , 인종차별때문)
git push -u origin main
Push가 완료된 모습이다.
git branch
현재 *를 기준으로 내가 어디 브랜치에 있는지 알려준다
아래는 내가 만든 Git_first 라는 repository 라는 폴더 가 생성되고
그 안에 커밋들 (폴더s)이 들어간다고 생각하면 이해가 편하다
누가 어떤 정보를 바꾸었는지 이력 확인이 모두 가능하다
728x90'TIL' 카테고리의 다른 글
TIL.49 How the web works? (0) 2020.11.27 TIL.48 HTTP (0) 2020.11.26 TIL.46 리눅스 & 터미널을 이용한 개발환경 설정 (0) 2020.11.24 TIL.45 Database (0) 2020.11.23 TIL.44 과제_클래스 만들기(복기) (0) 2020.11.22