git사용법과 명령어

git은 개발자에게는 없어서는 안될 버전관리시스템입니다.
SVN중앙집중식 버전관리 시스템이라면 git은 분산 버전관리 시스템이라 할 수 있습니다.
경우에 따라 다르겠지만 예전에는 SVN을 많이 사용하던것을 현재는 분산 버전관리 시스템이 git으로 많이 넘어온 상태입니다.

로컬컴퓨터에서만 사용할 경우에는 git만 설치하여 사용하면 되지만 원격저장소를 통해서 여러사람과 사용하기 위해서는 git서버가 있어야 합니다.
git서버로 대표적인 사이트는 우리가 흔히 알고 있는 github가 있고 gitlab, Bitbucket 등이 있습니다.
물론 네트워크내의 컴퓨터 한대를 이용하여 서버를 구축하여 사용할 수도 있습니다.

서비스명 설명 URL
GITHUB 무료로 사용 가능하나 소스가 공개됨 https://www.github.com
GITLAB 무료로 무제한 사용가능 https://about.gitlab.com
Bitbucket 저렴한 가격에 사용가능 https://bitbucket.org
Bonobo Git Server 설치형 git서비스 (Win) https://bonobogitserver.com
gogs 설치형 git서비스 (Linux/Win/Mac) https://gogs.io
gitea 설치형 git서비스 (Linux/Win/Mac) https://gitea.io/en-US/

git은 분산 버전관리 시스템 이기 때문에 로컬 저장소에 있는 git과 서버에 올린 원격 저장소에 있는 git의 내용과 구성이 동일합니다.
그래서 혹시나 git서버가 망가지거나 소스를 분실해도 로컬 저장소에 있는 git파일을 push(업로드)하면 동일하게 복구가 가능하게 됩니다.
또한 분산관리시스템을 기본적으로 로컬 저장소에서 관리를 하기 때문에 처리속도가 빠르다는 장점도 가지고 있습니다.

git 명령어

git에서 사용하는 명령어를 간단히 정리해 보도록 하겠습니다.

기본 명령어

git –version

현재 git의 버전을 확인 할 수 있습니다.

git init

git 저장소를 생성합니다.

git status

커밋되지 않은 변경사항을 조회합니다.

git add 파일명

git add는 로컬디렉토리에서 작업한 파일을 스테이징 영역에 올려 놓습니다. 다시말하면 git에서 관리하는 파일이라는 선언을 한다고 보면 됩니다.

git commit -m “커밋메시지”

git add를 통해서 스테이징에 올라가인 파일들을 커밋 합니다.
SVN에서의 commit는 변경된 파일을 서버에 올리는 것을 말하지만 git에서의 commit는 변경된 파일(스테이징된 파일)을 로컬 저장소에만 반영을 하는 것을 말합니다.
다시말하면 원격서버에는 올라가 있지 않다는 것입니다. 원격서버에 올릴려면 여기에 다시 git push 명령어를 실행해 줘야 합니다.

git diff

작업트리와 스테이징영역에 대한 차이점을 보여줍니다.
--cached 옵션을 추가하면 스테이징 영역과 저장소의 차이점을 보여줍니다.
git diff HEAD를 입력하면 작업트리, 스테이징 영역, 저장소 의 차이점을 모두 보여 줍니다.

git mv 파일명 새파일명

기존에 존재하던 파일을 새파일로 변경을 하며 변경이력은 그대로 유지합니다.

git checkout — 파일명

아직 커밋 전인 파일에 대해 변경내용을 취소하고 이전 커밋으로 되돌립니다.
SVN의 revert와 같은 역활을 합니다.

branch 관련 명령어

git branch

로컬 저장소의 브랜치 리스트를 볼 수 있습니다.
-r 옵션을 사용하면 원격 저장소의 브랜치를 볼 수 있습니다.

git branch 브랜치1

브랜치1라는 새로운 브랜치를 만듭니다.(체크아웃은 하지 않습니다.)

git branch 브랜치2 브랜치1

브랜치1에서 브랜치2를 새로 만듭니다.

git branch -d 브랜치1

브랜치1를 삭제합니다.

tag 관련 명령어

git tag

로컬 저장소의 태그 리스트를 볼 수 있습니다.
-r 옵션을 사용하면 원격 저장소의 태그 리스트를 볼 수 있습니다.

git tag 태그명 브랜치1

브랜치1의 현재상태에서 태그명으로 태그를 붙힙니다.
보통 태그는 버전명으로 많이 사용합니다.

원격저장소 관련 명령어

git clone 원격저장소 주소

원격저장소 주소에 있는 내용을 복제하여 현재 폴더에 저장합니다.

git pull

원격저장소의 변경사항을 가져와서 로컬저장소에 있는 내용과 합집니다.

git push

로컬저장소에 있는 내용을 원격저장소에 업로드 합니다.

git remote add 이름 저장소주소

새로운 원격 저장소를 추가합니다.

git remote

추가한 원격저장소 리스트를 보여 줍니다.

git remote rm 이름

해당 이름의 원격저장소를 제거합니다.

기타 명령어

git checkout 브랜치명/태그명

작업트리를 변경합니다.

git checkout -b 브랜치2 브랜치1

브랜치1에서 브랜치2라는 새로운 브랜치를 만들고 작업트리를 변경합니다.

git rebase 브랜치1

브랜치1의 변경사항을 현재 브랜치에 적용합니다.

git merge 브랜치1

브랜치1의 브랜치를 현재 브랜치와 합칩니다.

Similar Posts

  • Node.js의 유용한 모듈 소개

    Node.js에서는 475,000개에 달하는 정말 많은 모듈이 존재합니다. 그중에서 제가 사용해 봤던 몇몇 유용한 모듈을 소개할까 합니다. 1. url (표준모듈) url 모듈은 상대URL을 절대URL로 변경 해주는 등 url 사용에 대한 다양한 기능을 제공하고 있습니다. 간단한 기능 API는 아래와 같습니다. url.resolve(from, to) // 상대경로를 절대경로로 변경하여 줍니다. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) // url 문자열(urlStr)을 url 객체로 변환하여 리턴합니다. […]

  • 포토샵보다 편리한 재미있는 사진편집 프로그램 포토스케이프

    사진 편집의 왕은 누가 뭐래도 아직까지는 Adobe 포토샵입니다. 포토샵의 기능은 정말 어마무시합니다. 일반인이 이것을 사용하기 위해서는 많은 공부가 필요합니다. 하지만 일반인이 필요한 기능은 그냥… 사진 자르고 화살표 붙히고 색상 환하게하는 등의 간단한 작업이 필요할 뿐인 경우가 많습니다. 이럴 때 필요한 것이 바로 포토스케이프입니다. 간단히 이미지를 자르고 돌리고 워터마크를 일괄 적용시키고 할때 쉽게 처리 할 수있습니다. […]

  • 시놀로지 Docker로 WordPress 완벽하게 설치하기

    시놀로지는 정말 좋은 어른들의 장난감인것 같습니다. 할게 이것 저것 무궁무진하게 많습니다. 우리 가족의 사진 히스토리를 기록할 수도 있고 어디에서든지 비용부담없이 동영상을 즐길 수도 있고 만화서버로도 이용할 수 있습니다. 그중에서도 프로그래머나 개발자 라면 정말 반길만한 서비스가 있는데, 바로 도커(Docker)라고 할 수 있습니다. 도커에 대해서 자세히 알려면 공부를 많이 해야 겠지만 간단하게 말한다면… 개발자가 개발을 하다가 “이게 […]

  • Windows7 에서 WebDAV 연결하는 방법

    Windows7의 경우 WebDAV가 연결이 잘 되지 않을 때가 있다. 그때는 아래와 같이 레지스트리를 조금 만져주면 된다. 레지스트리 편집기를 열어 아래 위치를 찾는다 실행 > regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 아래 키의 값을 1에서 2로 수정한다. 키 이름 : BasicAuthLevel 값(Value) : 2 (키 이름이 없다면 새로 만들기 -> DWORD Value) 각 값이 의미하는 것은 다음과 같다 0 – […]

  • CSS3로 타이틀바 꾸미기 5가지

    HTML과 CSS로 탬플릿 디자인을 할때 타이틀 제목으로 사용할 태그에 대해서 미리 꾸며 놓는 경우가 있습니다. 저같은 경우는 블로그를 작성할때 Markdown으로 작성을 하는데 Headline 테그에 미리 CSS로 꾸며 놓으면 쉽고 빠르게 아름다운 글 모양을 나타낼 수 있습니다. 보통 h1 ~ h6 사이의 테그를 크기와 두께 라인 등을 이용하여 꾸밉니다. 아래에 정보를 남기니 참조해서 사용하시면 됩니다. h1 […]

  • Gruntfile의 주요 플러그인들

    앞선 포스팅에서 Grunt 소개와 설치방법를 소개했었습니다. 이번에는 Grunt의 주요 플러그인들을 소개하고 간략한 설명을 포스팅 하겠습니다. 플러그인 Grunt.js에서 말하는 플러그인과 Node.js에서 말하는 패키지는 동일한 것입니다. 그래서 Grunt에서 패키지를 설치하는 방법과 Node.js에서 패키지를 설치하는 방법이 동일합니다. 플러그인 찾기 대부분의 Grunt 플러그인들은 Grunt사이트의 Plugin 메뉴에서 확인할 수 있습니다. 먼저 Grunt웹사이트의 플러그인 메뉴로 이동합니다. 원하는 기능의 플러그인을 검색창을 이용하여 […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다