[Git] Day4. 멘붕의 연속, Git과 github 💾

오늘 git과 github를 본격적으로 강의을 들었다. 예상은 했지만 끊임없이 발생하는 에러와 처음 들어보는 생소한 용어들에 잠시 우주로 갔다온 기분을 느꼈다.. 😵‍💫
어렵지만 개발자라면 이력서, 포트폴리오 떄문이라도 반드시 거쳐야하는 관문이다..
무조건 친해져야한다..! 🔥

Git은 무엇인가?

개발자는 항상 팀 프로젝트를 하면서 인원이 많을수록, 프로젝트 기간이 길수록 어느 파일이 최종 업데이트 파일인지 확인하기가 어려워진다. 그래서 협업 프로젝트에서는 버전 관리가 필요하다.

Git로컬 저장소(내 컴퓨터)원격 저장소(서버 컴퓨터)로 나뉜다. 내 컴퓨터에서 작성한 프로젝트를 원격 저장소에 저장해두고, 만약 내 컴퓨터의 프로젝트가 손상되거나 다른 컴퓨터에서 코드를 가져오고 싶을 때는 원격 저장소에서 바로 가져올 수 있습니다. 이때, 코드 뿐만 아니라 코드의 변경 내역까지 모두 가져올 수 있기 때문에 Git이 "버전 관리 도구"라고 불립니다.

쉽게 말하면 "원하는 시점마다 자유롭게 돌아갈 수 있는 체크포인트를 두고 새로운 소스코드를 추가하거나 삭제할 수 있게 하고, 오류가 발생한다면 이전 시점으로 언제나 돌아갈 수 있게 해주는 시스템(버전 관리 시스템)"이다.

그리고 Git으로 관리하는 프로젝트를 올려둘 수 있는 Git호스팅 사이트Github이다.

Github는 단순한 저장소가 아닌 개발자의 넓은 커뮤니티로서, 자신의 프로젝트뿐만 아니라 다른 개발자들의 인기있는 소스코드를 볼 수 있으며 이슈(issue)를 제기할 수 있고 프로젝트를 수정하는데 기여(contribute)할 수 있다.


이론은 그만하고 Git의 설치부터 실습까지 한번 해보도록 하자!

Git은 Mac에는 기본적으로 설치되어있다. 그래서 버전만 확인을 하면 된다.

Git 버전 확인하기

Git 버전을 확인하기 위해서 '터미널'을 이용해야한다.

터미널에 git --version을 입력 후 엔터를 눌려보면 현재 설치되어 있는 버전이 나온다.

git --version

Git 사용자 설정

Git이 잘 설치되어 있다면 "사용자 설정"을 해야한다.

git config --global user.name "Github Name"
git config --global user.email "[email protected]" 

Git 저장소 만들기

사용자 설정을 마치면 디렉토리를 생성하고 이동하여 Git저장소로 만들어보자!

mkdir 디렉토리명
cd 디렉토리명

mkdir 디렉토리명은 "make directory"의 약자로 디렉토리를 생성하는 명령어이다.
cd 디렉토리명은 디렉토리로 이동하는 명령어이다.

디렉토리를 생성하고 해당 디렉토리로 이동하면 아래 경로(빨간 박스)가 디렉토리명으로 바뀌게 된다.
이 상태에 git init을 하면 저장소가 만들어진다.

해당 폴더로 들어가면 텅 비어있는 것처럼 보이지만 숨김파일로 .git가 있다.
맥 기준 숨김파일을 보이게 하는 토글키는 cmd+shift+.이다.

Git에 Commit 해보기

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-commitcommit을 하고 메세지를 "First-commit"로 하겠다는 뜻이다.
commit이 성공적으로 이루어지면 아래처럼 나오게 된다.




github에서 Repository 만들기

이제 githubRepository를 생성해보자!

우선 아래의 노란색 박스인 "New" 버튼을 클릭한다.

들어가면 아래처럼 입력하는 창이 뜬다. 여기서 빨간색 박스를 다 입력한 뒤에 맨 아래 Create repository 버튼을 클릭하면 Repository가 생성이 된다.

만약 3번 Add a README.md 체크를 하지 않으면 아래처럼 화면이 나올 것이다.
아래의 명령어를 "터미널"에 입력하면 README.md파일이 Repository에 생성이 될 것이다.

위의 명령어를 다 입력하게 되면 이렇게 터미널에 출력이 될 것이다.
다음 Repository를 확인하면 방금 생성한 README.md가 있을 것이다.


Repository 하위 디렉토리 만들기

Repository로 들어가서 선택 메뉴 Add fileCreate 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 내 컴퓨터에 clone하기

우선 바탕화면에 하위 디렉토리를 만들고 접속한다.

그 다음 클론할 Repository에서 초록색 선택 메뉴 Code을 클릭해서 http://...로 시작하는 주소를 복사한다.

그리고 터미널에 아래처럼 입력하면 클론이 될 것이다.
마지막에 들어가는 "."은 하위 디렉토리를 생성하지 않기 위해 붙여준 것이다.

git clone http://... .

확인을 해보면 하위 디렉토리 없이 깔끔하게 클론이 된 것을 확인할 수 있다!

git pull / git add . / git commit / git push

우선 README.md에 "hello! world"라는 텍스트를 추가했다. 이것을 원격 저장소인 githubcommitpush를 해보도록 하자!

  • git pull : 원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용하는 명령어

git pull은 기존 github에 있는 Repository에 새롭게 commit한 내역이 있으면 그 버전을 받아서 나의 로컬 저장소에 덮어씌우는 것으로 해석이 되는 것 같다.

  • git add . : 로컬 저장소에 있는 디렉토리의 파일들을 commit 전 상태인 stage에 추가시켜 대기시켜 놓는 것

** 현재 stage라는 개념은 단순히 로컬 저장소에서 파일을 commit하기 전까지 잠시 보관하는 것으로 알고 있으면 될 것이다.

  • git commit -m "메세지" : 대기 시켜놓은 파일들을 commit을 시키고 메세지(-m)를 등록한다.

  • git push origin master : 원격 저장소에 푸시한다.

결과는 어떻게 되었을까?

githubcommitpush가 정상적으로 처리되었다! 🥳

Git/github TIL을 마치며..

Git과 github가 너무 어려웠다.. 중간에 에러가 발생해서 버벅대기도 하고...
그래서 오랜만에 "팀 개발을 위한 Git/Github 시작하기"라는 책을 읽었다.
근데 저번에 이 책을 보고 따라하다 오류가 너무 많이 발생해서 책 보는 것을 멈췄는데
다시 그때로 돌아오다니..ㅎㅎㅎ
이왕 이렇게 된거 하루마다 책을 보고 실습을 좀 해봐야겠다...
빨리 친해지자! 깃! 깃허브! 😡


수정 사항 🛠

4/3 git pull / git add . / git commit / git push를 간단하게 보여주는 이미지 수정 및 간단한 stage 정보 추가

git pull은 원격 저장소에서 업데이트된 데이터를 불어와 로컬 저장소에 있는 데이터와 병합하는 것!
git add .는 로컬 저장소의 모든 파일을 git의 stagecommit이 이루어질 때까지 보관한다.(데이터를 등록만 한 상태)
git commit은 git의stage에 보관된 데이터를 git에 등록하고 수정 사항의 내역을 -m "메세지"를 명령어를 이용하여 메세지로 입력할 수 있다.
git push는 로컬 저장소에서 git의 stage로 이동한 파일을 github에 저장한다.

** stage는 로컬 저장소에서 보낸 데이터를 commit을 위해 git에 보관하는 곳

좋은 웹페이지 즐겨찾기