GitHub

SeungMin·2022년 8월 2일
0

WECODE

목록 보기
6/19

Git Hub

gitgit hub는 어떤점이 다른걸까?

머릿속으로는 추상적으로 이해하고 있지만 입밖으로 정리하여 꺼내긴 어렵다.

간단하게 말하면

  • git은 버전 관리 프로그램 이다.
  • git hub는 버전 관리, 소스 코드 공유, 분산 버전 제어 등등이 가능한 원격 저장소 이다.

코드를 작성하고 배포하고 유지보수하는 개발자들에게 git hub를 다룰줄 안다는 것은 정말 중요하다.

그 중 기장 기초를 다뤄보려고 한다.


Git Clone

git clone의 사용법은 아래와 같다.

$ git clone [원격 저장소 주소]

대부분의 프로젝트는 이미 존재하는 저장소의 파일을 clone 하여 진행된다.

해당 코드가 실행되면 원격 저장소에있는 프로젝트 파일을 내가 명령을 실행한 폴더에 복사한다.

말 그대로 생성한게 아닌 복사 한 것이기 때문에 파일에 출처가 있다.


GIT Branch

git branch의 사용법은 두가지가 있다

$ git branch                  // 현재 브랜치 확인 , 생성된 브랜치 목록 확인
$ git brnach [생성할 브랜치 이름] // 지정한 이름으로 브랜치를 생성.

보통은 clone으로 복사한 이후에 자동으로 지정되어있는 브랜치가 master이다.

이때 master브랜치에서 작업하는것은 전체 프로젝트 파일에 관여되기 때문에 금기시 되는 사항이다.

그러한 이유로 clone 이후에 바로 branch명령어를 통해서 본인의 작업 영역을 생성하는게 수순이다.


Git Checkout

git checkout은 현재 branch를 바꾸는 명령어다.

$ git checkout [브랜치 이름]

이전에 생성한 브랜치 이름을 입력하면 해당 브랜치로 작업영역이 바뀌게된다.

브랜치만 생성할 것이 아니라 checkout으로 브랜치를 이동해주자


Git Status

git status는 지금 추적되지 않고있는 파일이 뭔지, 추적되고있는 파일이 뭔지 알려주는 명령어입니다.

$ git status

만일 commit을 하기 이전에 add> commit으로 바로 넘어가게 된다면

추적되지 않고있는 있을 수 있기 때문에 꼭 확인하고 넘어가는걸 추천합니다.


Git Commit

git은 버전관리 프로그램입니다.
git commit은 그런 버전관리를 명시적으로 명령하는 명령어입니다.

$ git commit -m "[버전 이름]"

어떠한 기능을 추가했거나, 개발 과정에서 해당 시점을 Save 해야할 때 커밋을 남깁니다.

commit은 여러번 남길 수 있습니다. 또한 자주 남기는게 좋습니다.

본인의 실수로 코드가 유실되거나 오염되었다면 이전에 남긴 커밋의 주소값을 통해서
해당 시점으로 파일을 되돌릴 수 있기 때문입니다.


Git Log

git log는 커밋의 기록을 보여줍니다.

$ git log
  • 지금까지 어떤 커밋을 남겼는지 확인하는 용도로 사용될 수 있습니다.

  • push이전에 커밋이 제대로 남겨졌는지 확인하는 용도로 사용할 수 있습니다.

  • 코드가 유실되거나 이전으로 되돌려야 할 상황에서 되돌릴 시점을 선택하는 자료로 사용될 수 있습니다.


Git Remote

  $ git remote add [주소 별명] [원격 저장소 주소]
Ex) git remote add origin https://github.com/ID/REPOSITORY_NAME

git remote는 내가 이전까지 열심히 남겨놓은 commitpush할 때
해당 파일과 버전 이력을 어느 주소로 보낼지를 지정하는 명령어입니다.

위의 문법을 통해서 명령하면 주소가 지정되며

$ git remote --v

해당 명령어를 입력하면 현재 할당되어있는 주소를 보여줍니다.


Git Push

git push는 이전에 열심히 지정하고 관리한 버전, 데이터를 원격 저장소로 보내는 명령어입니다.

$ git push [주소 별명] [브랜치 이름]

이전에 remote로 지정한 주소의 별명을 이용해서 push할 주소를 지정해주고
commit이 남겨진 해당 브랜치의 이름을 기입해서

내가 어떤 자료와 버전을 어느 주소에 push할 것인지 구체적으로 명령하는 명령어입니다.


위에 작성한 내용의 흐름대로 진행하면 각 기능별(브랜치 이름으로 구분하여 작업함) 버전을
세분화하여 관리할 수 있고 react를 통해서 SPA를 구현한다면

홈페이지 내부의 (navbar , main , aside , footer)등의 기능별 업데이트, 버전을
편리하게 관리할 수 있게됩니다.

profile
공부기록

0개의 댓글