[인공지능 데브코스] 3주차 day1 - git, numpy
12월 14일 월
오늘은 분산 버전관리 시스템인 git에 대해 공부하였다. numpy도 공부하긴 했지만 전에 다뤄본적이 있어서 대부분 익숙한 내용이었다. git은 예전부터 배워보고 싶었지만 협업할 일도 없고 배워도 꾸준히 사용하지 않으면 까먹을 것 같아서 미루고 있었는데 드디어 기회가 생겼다. 지금까지는 그냥 개인 파일 저장용으로만 사용했었는데 처음부터 한번 공부해 보면서 협업에서 git이 왜 중요한지에 대해 알 수 있었다. 앞으로 과제 제출도 git으로 한다고 했는데 git에 익숙해 질 수 있는 좋은 기회가 될 것 같다. 명령어들은 AI note에 따로 정리하고 개념위주로 정리하였다.
git이란
분산 버전관리 시스템
여러 사람이 한 번에 코드를 관리하기 위한 툴
중앙에 원격 저장소를 두고 로컬저장소에서 작업한다.
로컬저장소에서 작업할 때는 git
원격저장소에서는 github를 사용한다.
git에서의 상태
git에서는 기본적으로 commit이라는 단위로 진행한다.
commit이란?
commit은 스냅샷 같은 개념으로 어떤 파일을 저장하고 삭제하고 생성하는 모든 기록을 git에 담기에는 비효율적이다.
따라서 사용자가 기록을 저장할 순간을 저장해 주는데 그게 commit이다.
git의 파일들의 상태는 아래 그림과 같다.
working directory
commit에 반영되지 않는 file들이 있는 곳이다.
staging area
working directory에서 commit을 남기고 싶은 파일들을 add해주면 이곳으로 오게 된다.
repository
commit이 되면 commited상태가 되고 이곳에 오게 된다..
push를 해주면 원격 repository로 가게된다.
git의 branch
git에서는 필요에 따라 가지를 치고 병합을 할 수 있다.
협업을 할 때 각자 자신을 역할을 수행해아할 때나 테스트가 필요할 때 사용할 수 있다.
병합하는 방법을 여러가지가 있으며 필요한 병합 방법을 알맞게 사용해야 한다.
git 과 github
지금까지 작업했던 공간은 로컬저장소이다.
다른사람과 협업을 위해서는 원격 저장소가 필요하다.
원격 저장소 중 대표적인 것이 GitHub