ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git & Github] 기본개념 및 명령어
    Environment(개발환경)/Git & Github 2020. 12. 3. 01:22
    반응형

    🙋‍♀️ 개발자들의 필수지식 Git과 Github! 비슷해 보이지만 다른 이들은 무엇일까?

    참고영상: 유튜버 얄팍한 코딩사전님(youtu.be/Bd35Ze7-dIw)

    간단하게, Git은 버전 관리 시스템이고, Github는 이 데이터를 업로드하여 개발자들이 공유할 수 있는 플랫폼이다.

    Git과 Github에 대해 자세히 알아보고, Github 업로드를 위해 Git에서 사용되는 push 등의 명령어에 대해 포스팅하겠다.


    📕 Git에 대하여

    • 로컬 영역의, 분산 소스 버전 관리 시스템(Distributed Version Control System)
    • 서버를 분산시켜 구축할 수 있게 하는 소프트웨어
    • 소스코드를 효율적으로 관리할 수 있는 형상관리도구

     

    - Git이 필요한 이유

    차기 Version 개발간 데이터가 증발했을 때, 이전 Version으로 복구를 위한 버전관리 목적이 가장 크다고 본다.

    이러한 버전관리를 서버(Github)와는 별도로 로컬(Git) 저장소에서 분산관리하는 목적이다.

     

    이러한 수정/보완 이력으로 개발자간의 협업이 원활해지며, 코드를 합칠때 충돌부분을 미리 알려주는 부가기능도 있다.

    출처: 에이콘아카데미 공식블로그

     

    - Git 설치(공식사이트): git-scm.com/download

    Windows(혹은 Mac) 등 운영체제에 맞게 설치하면 되고, 프롬프트(or 터미널)에서 버전이 확인되면 정상설치된 것이다.

    git --version

     

    - Git 사용하기(명령어)

    0) git help : Git 명령어를 조회

     

    1) git init : Git 저장소로 초기화

    프롬프트(터미널)에서, 해당 디렉토리를 git 저장소로 만드는 명령어이다. .git 이라는 숨겨진 폴더가 생성된다.

      * git clone [url] 역시 Git 저장소 관련 명령어이나, 해당 url의 Git 저장소를 복사하는 용도이다. (프로젝트 공유)

     

    2) git status : 파일 상태 확인

    현재 파일들의 상태를 확인한다. 파일들 리스트와 함께 몇개의 구문들이 있다. (git에 올라간건 초록색, 아닌건 빨간색)

    Initial commit은 아직 Git으로 저장하지 않은 상태, nothing to commit은 수정사항이 없는 상태 등을 의미한다.

      * on branch master : master라는 branch에 속해있다는 의미로, branch는 버전들의 집합으로 이해

     

    3) git add / git rm : 파일 Git 저장소에 업로드 / 제거

    디렉토리 파일들을 Git 저장소로 업로드하는 명령어이다. 모든 파일을 올릴때는, git add . 입력한다. ('.' = 현 디렉토리)

     

    4) git commit -m[메세지] : 변경사항 commit 처리

    Git 저장소 파일들의 변경사항을 확정짓는다. -m[메세지]로 변경내용을 간략하게 첨부할 수 있다.

    git commit -am[메세지] 는 add + commit을 일괄적으로 처리하는 명령어이다.

     

    5) git log : commit 내역 확인

    지금까지 commit된 내역을 확인하는 명령어이다. log를 빠져나오려면 q를 누르면 된다.

     

    --<Github Repository 참고>--

     

    6) git remote add origin [Github url] : 원격 저장소 관리

    Github에서 추가한 원격 저장소와 연결하는 명령어이다. (origin 대신 원하는 원격 저장소명을 쓰면 된다.)

    이를 지우고자 할 경우, git remote remove origin 명령어를 사용하면 된다.

     

    7) git push -u [저장소명] [브랜치명] : 원격 저장소로 commit 보냄

    우리가 Git에서 commit한 데이터를 해당 원격 저장소로 업로드하는 명령어이다.

    -u는 원격 저장소로부터 업데이트를 받은 후 push 한다는 의미로 습관적으로 사용하면 좋다.

     

    8) git pull [저장소명] [브랜치명] : 원격 저장소의 내용을 가져옴

    원격 저장소에서 변경된 내용을 branch로 가져오는 명령어이다.

    pull을 할 때는 Github username & password를 매번 입력해야하는 번거로움이 있다. 이를 기억하는 명령어가 있다.

    git config credential.helper [저장소명], 대신 그만큼 보안에 취약해질 수 있기에 주의해야한다.

     

    - Git commit 수정하는 명령어

    Git에는 크게 Untracked, Tracked 두 가지 상태가 있고, Tracked는 Unmodified, Modified, Staged 세 가지로 구분된다.

    • Untracked : commit 전의 시점
    • Unmodified : commit 후, 변경사항이 없을 때
    • Modified : commit 후, 변경사항이 있을 때 (빨간색 표시)
    • Staged : 변경사항을 add 처리했을 때 (초록색 표시)

    출처: zerocho님의 블로그

     

    9) git diff : 수정된 파일의 달라진 부분 조회 (Modified, Staged)

     

    10) git checkout [파일명] : Modified 상태의 파일을 Unmodified로 복구

     

    11) git reset [파일명] : Staged 상태의 파일을 Modified로 복구 (이후 checkout)

    commit 후에 되돌릴때도 사용된다. 옵션은 --soft(Staged), --mixed(Modified, default), --hard(Unmodified) 세 가지.

     

    12) git revert : 이전 commit 내용을 새 commit에 덮어씌움 (Github에 이미 업로드했을 때 사용됨)

     

     

    이외에도, branch에 관련된 개념과 명령어들도 있지만 이는 별도 포스팅하도록 하겠다.

    📓 Github에 대하여

    • Git을 업로드할 수 있는 웹사이트(서비스)
    • 개발자들의 버전 제어 및 공동 작업을 위한 플랫폼(클라우드 개념)
    • Git을 사용하는 프로젝트를 지원하는 웹호스팅 서비스

    Git뿐만 아니라 다양한 소스코드를 업데이트 및 관리하고, 공유, 버그관리와 SNS기능까지 다양한 서비스를 제공한다.

     

    - Github 사용을 위한 배경지식

    1. Git 명령어 : commit(추가 및 변경내용을 로컬저장소에 저장), push(추가 및 변경내용을 원격저장소에 저장)

    2. 저장소 : 파일이나 디렉토리를 저장하며 변경내역을 기록. 개인 컴퓨터엔 '로컬', 서버 등 네트워크엔 '원격' 저장소.

    3. Branch(브랜치) : 현재 버전 유지보수 + 차기 버전 개발의 병렬작업 지원을 위해 Github는 branch 기능 지원.

                              지점으로 분기하며, 지점은 다른 지점에 영향을 받지 않으므로 같은 저장소에서 각자 개발가능.

     

    - Github 사용법

    0. Github 회원가입

     

    1. 저장소(Repository) 만들기 : Your Repository -> new -> Create a new repository(사진)

    name을 작성한다. Private는 유료회원만 작성 가능. 마지막으로, README 파일은 Repository 설명을 첨부하는 공간이다.

     

    2. 경로지정 및 디렉토리 생성

    출처: InsightOut 님의 블로그(https://homeproject.tistory.com/9)

    HTTPS의 url을 복사하여, 프롬프트(터미널) 상에서 개발하려는 디렉토리에 git clone 처리한다.

    project와 안에 .git 폴더가 생성된다. project 폴더 내에서 파일을 추가할 수 있다.

     

     

    3. Git 업로드(명령어)

    • Git에서 저장소 작성(git init) or Github 저장소 복사(git clone)
    • 파일 작성 및 편집(로컬 환경)
    • 파일의 생성/변경/삭제 Git 추가 (git add .)
    • 변경결과를 로컬 저장소에 commit (git commit -m[메세지])
    • 로컬 저장소에서 원격 저장소로 push (git push)
    마찬가지로, branch 관련 내용이나 Pull requests 같은 자주 쓰이는 기능들에 대해선 별도 포스팅하겠다.

    Git과 Github를 프로젝트를 진행하며 필요한 기능만 사용했는데, 이렇게 전반적으로 리뷰하게 되어 뜻깊었다.

     

    특히, 로컬/원격 저장소의 개념과 Git의 의의를 정확하게 짚고 넘어간 좋은 기회였고,

    버전관리와 긴밀한 Branch 개념에 대해 충분히 공부한 뒤 별도로 포스팅을 해야겠다.

     

    출처: zerocho님의 개인 블로그(https://www.zerocho.com/category/Git/post/)

    출처: 에이콘아카데미 네이버 블로그(https://m.blog.naver.com/acornedu/221522579114)
    반응형
Designed by Tistory.