ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git & Github] Git 다시 공부하기 (드림코딩 엘리)
    Environment(개발환경)/Git & Github 2020. 12. 6. 19:05
    반응형

    🙀 다시 공부해보는 Git 과 Github!

    Git 명령어를 통해 직접 Github로 push까지 해보았지만, 아직 사용하는데 있어 익숙치가 않았다.

    또한, branch나 commit 등 갈 길이 멀기에, 심화를 들어가기 전 드림코딩 엘리님 영상으로 복습했다.

    출처: Youtube 드림코딩 엘리님 영상(youtu.be/Z9dvM7qgN9s)

    📕 Git 공부 준비하기

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

     

    - Git GUI 설정: 프롬프트(터미널) 명령어 기반 프로그램으로 UI 권장. (git-scm.com/download/gui/mac)

     

    Git - GUI Clients

    GUI Clients Git comes with built-in GUI tools for committing (git-gui) and browsing (gitk), but there are several third-party tools for users looking for platform-specific experience. If you want to add another GUI tool to this list, just follow the instru

    git-scm.com

    * 엘리님은 Github Desktop 보다는, Source Tree(by 아틀라시안) 혹은 GitKraken 추천했다. 

      -> Source Tree는 UI가 simple하나 유용한 기능 지원, GitKraken은 UI가 매우 화려함. 우선 기본공부는 Terminal로!

     

    - Git 설치확인 : 버전이 반환되면 정상적으로 설치된 것이다.

    git --version

    📕 Git 초기 환경설정

    - git config : Git의 환경설정 확인 및 변경

    git config --list			// 텍스트 형태
    git config --global -e			// 파일 형태

     

    Code Editor와의 연동도 가능하다.

    code .				// 연동된 에디터 확인(vscode)
    git config --global core.editor "code --wait"

    code는 vscode 에디터를, --wait은 에디터가 켜진 동안 프롬프트(터미널)이 대기상태 설정하는 명령어이다.

     

    - 기본 환경설정

    // 설정
    git config --global user.name "Taeng"		
    git config --global user.email "dyek72731@gmail.com"		
    git config --global core.autocrlf true			// mac은 input
    
    // 출력
    git config user.name
    git config user.email

    * autocrlf 는 줄바꿈 관련 설정. Windows는 \r\n, Mac은 \n으로 줄바꿈이 되는데, \n로 통일시키는 명령어.

     

    - 명령어 간소화 환경설정

    git status			// status
    
    git config --global alias.st status
    git st				// status

    alias.<간소화> <명령어> 를 통해서, 자주 쓰이는 명령어를 간소화 할 수 있다.

     

    - git init : Git 프로젝트 초기화

    // cd로 디렉토리에 접근한 뒤..
    git init
    rm -rf .git

    디렉토리를 Git 프로젝트로 초기화한다. .git 숨겨진 폴더가 생성되며, 기본 설정은 master branch이다.

    .git 폴더를 지우려면, rm -rf .git 명령어를 사용하면 된다.    * Source Tree 같은 GUI로도 만들 수 있다.


    📕 Git Basics

    - Git 작업환경

    Git은 개인 컴퓨터의 히스토리인 Local 저장소와 Github 서버에 저장하기 위한 Remote 저장소로 나뉜다.

    또한, Local 저장소는 다시 3가지 디렉토리로 구분된다. (Working directory / Staging area / .git directory)

    출처: http://git.dokry.com/

     

    - Git 명령어 구성

    git <명령어> -<옵션>

    Git 명령어 구성은 위와 같다. 명령어와 옵션은 공식사이트의 Documentation > Reference에 잘 나와있다.

      * 참고(공식사이트) : git-scm.com/docs

     

     

    1) git status : Git 프로젝트 디렉토리 파일 상태 확인

    해당 디렉토리(git tut)의 파일상태를 보여준다. Branch는 master, commit은 없으며, Untracked 파일 3개를 의미한다.

    git add를 통해 tracked 상태로 설정할 수 있다. (-> Staging area)

     

    [git status 옵션들]

    • -h : 도움말(옵션들 확인가능)
    • -s, --short : 짧게 설명 (--long이 default)
    • -b, --branch : 브랜치 관련 정보

     

    2) gid add : 디렉토리 내 파일을 tracked 및 Staging area로 보냄

    git add <파일명> 을 통해 tracked 상태로 만든다. tracked의 의의는 파일의 수정 및 삭제여부 추적인 것 같다.

    Staging area의 파일들은 unmodified(초록색 글씨, commit 가능)상태, 수정된다면 modified(빨간색 글씨) 상태가 된다.

    // add 특수문법
    git add *.txt			// 특정 확장자만 보냄
    git add *			// 모든 파일 보냄(rm 된 파일은 제외)
    git add .			// 모든 파일 보냄(rm 된 파일도 포함)

     

     

    3) git diff : 디렉토리 내 파일의 변경내용 비교

    --- a(전버전)/c.txt 와 +++ b(신버전)/c.txt 를 비교한다. +는 추가된 부분, -는 삭제된 부분을 의미한다.

     

    기본적으론, Working Directory만 비교하기 때문에 a는 commit 혹은 Staging area의 수정된 파일일 확률이 높다.

     

    git diff --stagedStaging area 기준 비교로, 맨 처음 확인한다면 원래 /dev/null 과 추가된 b/파일명 이 나올 것이다.

    git diff --cached 는 위와 같은 역할을 한다. (cache = Staging area)

    git difftool 은 설정된 툴(vscode 등)을 활용하여 diff 비교상태를 보여준다.

     

     

    4) git commit : Staging area 파일들을 Local Repository로 보냄(버전화)

    commit 만 사용하면 템플릿이 팝업되고, 버전에 대한 Title과 Description을 적은 뒤 저장한다.

    commit 된 파일들은, Local(.git Repository)에 저장되며 master branch에서 하나의 버전이 된다.

     

    통상, git commit -m "메세지" 를 통해서 수정이력을 간단하게 적는 방법으로 사용한다.

    git commit -am "메세지" 를 사용해서, Staging area를 안 거치고 Working에서 바로 commit 할 수도 있다.

     

     

    5) git log : commit history 확인

    commit된 이력과 저자, 날짜, Title, Description 등 정보를 확인할 수 있다.

     

    commit 룰은, 동사 + 수정사항이 일반적이다. 또한, 수정 기능별로 업데이트하며 해당내용 외 수정을 추가하면 안된다

     

    * gitignore : 디렉토리 내에서 Git 업로드를 제외하는 파일목록

    // .gitignore 파일 내
    
    <파일명>
    
    *.<확장자>
    
    <디렉토리>/
    
    <디렉토리>/*.<확장자>

    git을 이해해야 할 부분이 참 많다. Local Repository의 구분과 각 상태, 적합한 명령어까지...

    github와 이어지면서 Remote Repository 개념도 생기고, branch에 대해 이해해야하는 심화학습 전의 복습이었다.

     

    엘리님 강의는 항상 예제와 함께 설명해주셔서 이해하기 좋으며, 이 강의는 git에 많이 치중된 거 같다.

    (github와 Remote 저장소에 대한 내용이 없었음)

     

    다음엔, git 및 github의 심화개념들을 공부해서 포스팅하도록 하겠다.

    출처: Youtube 드림코딩 by 엘리 (https://www.youtube.com/watch?v=Z9dvM7qgN9s)

     

     

    반응형
Designed by Tistory.