오늘 git과 github를 본격적으로 강의을 들었다. 예상은 했지만 끊임없이 발생하는 에러와 처음 들어보는 생소한 용어들에 잠시 우주로 갔다온 기분을 느꼈다.. 😵💫
어렵지만 개발자라면 이력서, 포트폴리오 떄문이라도 반드시 거쳐야하는 관문이다..
무조건 친해져야한다..! 🔥
개발자는 항상 팀 프로젝트를 하면서 인원이 많을수록, 프로젝트 기간이 길수록 어느 파일이 최종 업데이트 파일인지 확인하기가 어려워진다. 그래서 협업 프로젝트에서는 버전 관리가 필요하다.
Git
은 로컬 저장소(내 컴퓨터)와 원격 저장소(서버 컴퓨터)로 나뉜다. 내 컴퓨터에서 작성한 프로젝트를 원격 저장소에 저장해두고, 만약 내 컴퓨터의 프로젝트가 손상되거나 다른 컴퓨터에서 코드를 가져오고 싶을 때는 원격 저장소에서 바로 가져올 수 있습니다. 이때, 코드 뿐만 아니라 코드의 변경 내역까지 모두 가져올 수 있기 때문에 Git이 "버전 관리 도구"라고 불립니다.
쉽게 말하면 "원하는 시점마다 자유롭게 돌아갈 수 있는 체크포인트를 두고 새로운 소스코드를 추가하거나 삭제할 수 있게 하고, 오류가 발생한다면 이전 시점으로 언제나 돌아갈 수 있게 해주는 시스템(버전 관리 시스템)"이다.
그리고 Git
으로 관리하는 프로젝트를 올려둘 수 있는 Git
호스팅 사이트가 Github
이다.
Github
는 단순한 저장소가 아닌 개발자의 넓은 커뮤니티로서, 자신의 프로젝트뿐만 아니라 다른 개발자들의 인기있는 소스코드를 볼 수 있으며 이슈(issue)를 제기할 수 있고 프로젝트를 수정하는데 기여(contribute)할 수 있다.
이론은 그만하고 Git
의 설치부터 실습까지 한번 해보도록 하자!
Git
은 Mac에는 기본적으로 설치되어있다. 그래서 버전만 확인을 하면 된다.
Git
버전을 확인하기 위해서 '터미널'을 이용해야한다.
터미널에 git --version
을 입력 후 엔터를 눌려보면 현재 설치되어 있는 버전이 나온다.
git --version
Git
이 잘 설치되어 있다면 "사용자 설정"을 해야한다.
git config --global user.name "Github Name"
git config --global user.email "example@gmail.com"
사용자 설정을 마치면 디렉토리를 생성하고 이동하여 Git저장소
로 만들어보자!
mkdir 디렉토리명
cd 디렉토리명
mkdir 디렉토리명
은 "make directory"의 약자로 디렉토리를 생성하는 명령어이다.
cd 디렉토리명
은 디렉토리로 이동하는 명령어이다.
디렉토리를 생성하고 해당 디렉토리로 이동하면 아래 경로(빨간 박스)가 디렉토리명으로 바뀌게 된다.
이 상태에 git init
을 하면 저장소가 만들어진다.
해당 폴더로 들어가면 텅 비어있는 것처럼 보이지만 숨김파일로 .git
가 있다.
맥 기준 숨김파일을 보이게 하는 토글키는 cmd+shift+.
이다.
touch README.md
git add README.md ⭐️
git commit -m "First-commit"
touch
는 파일을 생성하는 명령어이다. 입력 시 파일이 현재 디렉토리에 추가된다.
git add README.md
는 commit 파일을 추가하는 것이다.
위의 이미지처럼 add
는 stage에 추가된 상태고 commit
을 대기 중인 상태이다.
git commit -m "First-commit
은 commit
을 하고 메세지를 "First-commit"로 하겠다는 뜻이다.
commit
이 성공적으로 이루어지면 아래처럼 나오게 된다.
이제 github
의 Repository
를 생성해보자!
우선 아래의 노란색 박스인 "New" 버튼을 클릭한다.
들어가면 아래처럼 입력하는 창이 뜬다. 여기서 빨간색 박스를 다 입력한 뒤에 맨 아래 Create repository
버튼을 클릭하면 Repository
가 생성이 된다.
만약 3번 Add a README.md 체크
를 하지 않으면 아래처럼 화면이 나올 것이다.
아래의 명령어를 "터미널"에 입력하면 README.md
파일이 Repository
에 생성이 될 것이다.
위의 명령어를 다 입력하게 되면 이렇게 터미널에 출력이 될 것이다.
다음 Repository
를 확인하면 방금 생성한 README.md
가 있을 것이다.
Repository
로 들어가서 선택 메뉴 Add file
의 Create new file
를 클릭한다.
들어가면 아래처럼 파일명을 만드는 입력창과 마크다운을 할 수 있는 영역이 나온다.
파일명을 만드는 입력창에 "/"를 입력하면 하위 디렉토리(폴더)를 만들 수 있다.
나는 우선 index.html
를 만들고 아래처럼 ul>li
인 링크를 만들었다.
이 후 about
폴더 안 index.html
, edu
폴더 안 index.html
, kdt
폴더 안 index.html
를 또 만들었다.
이제 폴더 내 index.html
가 아닌 가장 바깥의 index.html
에 링크를 연결해서 각 html문서와 연결시켜보자.
Repository
의 화면에서 "."을 누르면 vscode로 접속하여 웹에서 바로 수정을 할 수 있다.
또는 Repository
의 URL에 https://github.com/github name/디렉토리명
을https://github.dev/github name/디렉토리명
로 바꾸면 똑같이 접속할 수 있다.
이렇게 링크를 넣고 왼쪽의 사이바에 Source Controls
를 클릭한다.
그러면 이러한 메뉴가 뜨는데 index.html
을 클릭한 상태로 입력창에 "메세지"를 입력하고 상단의 체크표시(commit and push)를 누르면 업데이트 완료!
다시 Repository
로 돌아가서 history
를 확인해보면 아래처럼 "입력한 메세지", "수정된 정보"를 확인할 수 있다.
** 빨간색 부분이 이전 버전이고 초록색 부분이 commit과 push를 한 버전이다.
우선 바탕화면에 하위 디렉토리를 만들고 접속한다.
그 다음 클론할 Repository
에서 초록색 선택 메뉴 Code
을 클릭해서 http://...
로 시작하는 주소를 복사한다.
그리고 터미널에 아래처럼 입력하면 클론이 될 것이다.
마지막에 들어가는 "."은 하위 디렉토리를 생성하지 않기 위해 붙여준 것이다.
git clone http://... .
확인을 해보면 하위 디렉토리 없이 깔끔하게 클론이 된 것을 확인할 수 있다!
우선 README.md
에 "hello! world"라는 텍스트를 추가했다. 이것을 원격 저장소인 github
에 commit
과 push
를 해보도록 하자!
git pull
: 원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용하는 명령어git pull
은 기존 github에 있는 Repository
에 새롭게 commit
한 내역이 있으면 그 버전을 받아서 나의 로컬 저장소에 덮어씌우는 것으로 해석이 되는 것 같다.
git add .
: 로컬 저장소에 있는 디렉토리의 파일들을 commit
전 상태인 stage
에 추가시켜 대기시켜 놓는 것** 현재 stage
라는 개념은 단순히 로컬 저장소에서 파일을 commit
하기 전까지 잠시 보관하는 것으로 알고 있으면 될 것이다.
git commit -m "메세지"
: 대기 시켜놓은 파일들을 commit
을 시키고 메세지(-m)를 등록한다.
git push origin master
: 원격 저장소에 푸시한다.
결과는 어떻게 되었을까?
github
에 commit
과 push
가 정상적으로 처리되었다! 🥳
Git과 github가 너무 어려웠다.. 중간에 에러가 발생해서 버벅대기도 하고...
그래서 오랜만에 "팀 개발을 위한 Git/Github 시작하기"라는 책을 읽었다.
근데 저번에 이 책을 보고 따라하다 오류가 너무 많이 발생해서 책 보는 것을 멈췄는데
다시 그때로 돌아오다니..ㅎㅎㅎ
이왕 이렇게 된거 하루마다 책을 보고 실습을 좀 해봐야겠다...
빨리 친해지자! 깃! 깃허브! 😡
4/3 git pull / git add . / git commit / git push를 간단하게 보여주는 이미지 수정 및 간단한 stage 정보 추가
git pull
은 원격 저장소에서 업데이트된 데이터를 불어와 로컬 저장소에 있는 데이터와 병합하는 것!
git add .
는 로컬 저장소의 모든 파일을 git의 stage
에 commit
이 이루어질 때까지 보관한다.(데이터를 등록만 한 상태)
git commit
은 git의stage
에 보관된 데이터를 git에 등록하고 수정 사항의 내역을 -m "메세지"
를 명령어를 이용하여 메세지로 입력할 수 있다.
git push
는 로컬 저장소에서 git의 stage
로 이동한 파일을 github
에 저장한다.
** stage
는 로컬 저장소에서 보낸 데이터를 commit
을 위해 git에 보관하는 곳