ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GIT 기초, 윈도우에서 git bash 사용법
    웹프로그래밍/버전 관리 2018. 12. 13. 15:22


    프롤로그


    git은 이클립스에도 내장되어 있다. 소스트리 같은 GUI 형태의 프로그램도 많이 사용하는 걸로 알고 있다.

    그 동안 협업 도구의 역할 보다는 단순히 내 코드를 github에 저장하고 다시 다른 컴퓨터에서 코드를 가져와서

    편하게 코딩하는 용도로 사용해왔는데 개발자는 협업이 필수 인 만큼 git 의 기본을 공부 하고 CLI 형태의 git bash 사용법을 익히고자 

    인프런 사이트에서 '지옥에서 돌아온 git' 생활코딩 강의를 듣게 되었다.

     

    기본 git 사용법은 아래와 같다.


    git init으로 프로젝트 버전 관리 시작

    새로운 작업 후 git add로 작업 파일을 git stage에 등록

    git commit으로 git stage에 있는 작업 파일을 기준으로 변경 이력 생성


    commit에 익숙해지면 브랜치 생성, 체크 아웃, 병합, 리셋 등을 배우면 된다.



    GIT 다운로드 및 설치



    #윈도우

    GIT 다운로드 - 

    https://git-scm.com/


    #리눅스

    sudo apt-get install git

    sudo yum install git



    설치 시에는 별다른 설정없이 계속 'next'를 눌러주면 됨.



    기본적인 GIT 사용법(git bash)


    git bash 열기

    git 버전 관리를 시작하려는 프로젝트 폴더를 선택하고 마우스 오른쪽 버튼 누른 후 'Git Bash Here' 클릭하면 명령창이 뜬다.





    git init 

    프로젝트 폴더에서 git 초기화(버전 관리 시작)

    git 명령어는 반드시 해당 프로젝트 디렉토리에서 입력해야 한다.



    git status 

    -Untracked files : 프로젝트 내의 git 관리 안되는 파일

    -Changes not staged for commit : add 후 commit 대기상태(stage area)인 파일




    <git bash에서 연습을 위한 test.txt 파일 생성>


    vim test.txt (vim으로 텍스트 파일 생성 후 편집)

    i 키 (insert모드 전환, 취소는 esc키)

    -내용 입력-

    :wq (저장 후 종료)

    cat test.txt (파일 읽기)

    cp test.txt test2.txt (파일 복사)



    git add test.txt 

    1. git이 관리하도록 파일(test.txt) 추가

    2. 버전 관리 중인 파일(test.txt)이 변경 되었을때 사용

    ※git add

    1 commit은 1개의 작업을 담는게 적절하다. 만약 여러 개의 작업이 진행되었을 경우, git add로 선택적으로 작업 파일을 commit 할 수 있다. 또한 임시 파일을 제외하고 핵심 파일만 관리할 수 있다.

    add한 파일은 commit 대기 상태(stage area)에 들어간다. commit 후에는 파일은 repository로 이동한다.


    git config --global user.name '이름'

    git config --globall user.email '이메일'

    최초 1번, commit에 남을 name과 이메일 설정


    git commit  

    버전 만들기(commit) 후 vim으로 commit 메시지 입력


    git log 

    commit 내용 확인


    git log -p

    commit 간에 파일의 바뀐 내용을 보여줌


    ※로그 읽는법

    +: 추가 또는 바뀐 내용

    -: 이전 내용


    +++ b/test2.txt 파일 추가됨

    --- /dev/null 파일 없음


    git log a24944a9c41cbd5d64189e16d7f2911c447d1e8a (commit id)

    해당 commit을 포함한 이전 commit 내용만 보여줌


    git diff 커밋ID1..커밋ID2

    commit 간의 소스코드 차이를 보여줌






    reset VS revert(커밋 취소 및 되돌리기)



    git reset 커밋ID --hard


    원격 저장소에는 reset을 사용하면 안된다. 왜?

    reset 옵션?


    git revert 






    GIT 매뉴얼 사용하기



    git commit --help


    git commit -am "커밋메세지"  -> git add, commit, 커밋 메세지 입력을 한번에





    branch



    -브랜치 확인

    git branch



    -브랜치 생성

    git branch test_1



    -브랜치 선택

    git checkout test_1



    -브랜치 간에 차이 확인

    git log master..test_1 -p

    git diff master..test_1



    -git log 브랜치 출력

    git log --branches --decorate --graph (--oneline)




    merge



    -브랜치 병합(master에 test_1을 가져와서 병합)

    git checkout master

    git merge test_1



    -fast-forward

    커밋을 생성하지 않는다.


    -3wayMerge

    커밋 내용이 다른 두 브랜치를 병합하는 방법, 새로운 커밋 생성


    git checkout -b test_2   -> test_2 브랜치를 생성하고 체크아웃한다.

    git branch -d test_2  -> test_2 브랜치를 삭제한다.




    stash



    작업 내용을 commit 대신 임시로 저장할때 사용, 작업 내용의 인덱스가 체크아웃 중인 브랜치에 저장됨


    git add

    git stash

    git stash apply 임시 저장한 작업 내용을 다시 불러옴

    git stash drop 삭제

    git stash pop  -> apply & drop




    git bash에서 소스트리 사용하기



    stree   -> 현재 프로젝트의 버전 관리를 소스트리에서 보여줌  








    #명령어

    pwd -> 현재 폴더 위치 확인

    cd 

    mkdir 

    ls

    ls -al