ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] 기본 명령어 정리
    Git 2016. 12. 23. 13:08

     · Git 기본 명령어 정리 


    Git의 기본 명령어를 정리 해보겠습니다.


      1   Git이란?


    깃은 리눅스 개발자인 리눅스코발즈가 개발한 코드 형상관리 프로그램입니다.

    아래 사이트에서 다운받을 수 있습니다.



      2   명령어


      $ git init

    현재 디렉토리를 Git Repository로 설정하는 명령어입니다.

    디렉토리 내부에 .git 디렉토리가 생성되며 자동으로 master 브랜치가 생성됩니다.


      $ git status

    현재 Repository의 상태를 보여주는 명령어입니다.

    $ git status
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       index.txt   <-- [1]

    nothing added to commit but untracked files present (use "git add" to track)

    [1] index.txt가 빨간색으로 표시되어 있는데, 이 파일은 Working Diretory에 위치하고

    Staging Area에는 추가되지 않은 상태를 가르킵니다. 'Add' 명령어를 이용하여 Staging Area로 올려주어야 합니다.


      $ git add

    Working Diretory의 파일을 Staging Area로 옮기는 명령어입니다.


    명령어

    $ git add index.html
    > index.html 파일을 Staging Area로 Add 시킵니다.
    $ git add .
    > 현재 디렉토리에 있는 add되지 않은 모든 파일을 Add 시킵니다.
    git add -i
    > Interactive 한 방법을 이용합니다. (선택해서 Add 시키는 등 여러가지 방법을 취할 수 있습니다.)
    $ git status
    # On branch master
    #
    # Initial commit
    #
    # Changes to be committed:
    #   (use "git rm --cached <file>..." to unstage)
    #
    #       new file:   index.txt

    #

    - $ git status 명령어로 확인해보면 new file: ~~ 로 Repository에 Commit될 준비가 되어있는 파일을 확인할 수 있습니다

    $ git rm --cached index.txt 를 입력하면 Staging Area에서 다시 Working Directory로 내릴 수 있습니다.


      $ git commit

    Staging Area에 있는 파일을 Repository로 저장시키는 명령어입니다.


    명령어

    $ git commit
    > vim 에디터가 출력되고 메시지를 입력 한 뒤 commit을 하게 해줍니다.
    $ git commit -m "메시지"
    > vim 에디터를 띄우지 않고 간략한 메시지를 작성 할 수 있는 커밋방법입니다.
    git commit -a -m "메시지"
    > Repository에 있는 파일을 수정 했을 때 이 명령어를 사용하여 commit 합니다.
    $  git commit
    [master (root-commit) 289c551] Add index.txt
     1 file changed, 0 insertions(+), 0 deletions(-)

     create mode 100644 index.txt

    - 1개의 파일이 변경되었고 라인 변경은 없다. 삭제된 부분은 없다.

    $ git commit -m "First Commit!!"
    [master 5311d36] First Commit!!
     1 file changed, 0 insertions(+), 0 deletions(-)

     create mode 100644 about.html

    - 메시지를 이용한 커밋


      $ git log

    저장소에 잇는 Commit 이력을 조회할 수 있는 명령어입니다.


    명령어

    $ git log
    > 커밋의 모든 상세 이력이 출력되는 로그입니다.
    $ git log --oneline
    > 커밋의 이력중 커밋ID, Title, Massage만 출력되는 로그입니다.
    git log --oneline --decorate --graph --all
    > 모든 커밋&브랜치의 로그를 출력합니다.
    git log --index.txt
    > 특정 파일의 변경 커밋을 조회합니다.


      $ git diff

    다른 커밋과 Working Directory의 코드 차이점을 비교해주는 명령어입니다.


    명령어

    $ git diff
    > 현재 브랜치의 마지막 커밋과의 차이점을 비교합니다.
    $ git diff [Commit ID]
    > 특정 커밋과의 차이점을 비교합니다. *Commit id) 235266 과 같이 commit당 발급되는 16진수로 이루어진 수 
    git diff [Commit ID] -- [File root]
    > 특정 커밋과 특정 파일의 차이점을 비교합니다.


      $ git branch

    브랜치를 생성, 수정, 삭제 등을 하는 명령어입니다.


    명령어

    $ git branch
    > 현재 만들어진 브랜치들을 조회합니다.
    $ git branch [Name]
    > [Name] 브랜치를 생성합니다.
    $ git branch -d [Name]
    > [Name] 브랜치를 삭제합니다.
    $ git branch -m [Before Name] [After Name]
    > 브랜치의 이름을 변경합니다.

      $ git checkout

    Working Directory의 소스를 특정 커밋으로 변경하는 명령어입니다.


    명령어

    $ git checkout [branch Name]
    > 특정 브랜치로 Working Directory를 변경합니다.
    $ git checkout [Commit ID]
    > 특정 커밋으로 Working Directory를 변경합니다.
    $ git checkout -- [File root]
    > 특정 파일을 해당 브랜치 또는 커밋의 상태로 변경합니다.
    $ git checkout [Commit ID] -- [File root]
    > 특정 파일을 특정 커밋의 상태로 되돌립니다.
    주의) Checkout을 할 때 파일을 Commit 하지 않은 상태로 두고 진행하면 Checkout을 해도 파일은 같이 따라가게 됩니다.

      $ git marge

    다른 두 개의 소스를 병합시키는 명령어입니다.


    명령어

    $ git marge [branch Name]
    [branch Name]의 소스를 현재 브랜치와 병합시킵니다.
    같은 파일이 마스터와 브랜치에서 둘다 수정되었을 경우 CONFLICT 에러가 발생합니다. (자동으로 병합 할 수 없다는 경고)
    Auto-merging index.html
    CONFLICT (content): Merge conflict in index.html
    Automatic merge failed; fix conflicts and then commit the result.
    $ git status
    # On branch master
    # You have unmerged paths.
    #   (fix conflicts and run "git commit")
    #
    # Unmerged paths:
    #   (use "git add <file>..." to mark resolution)
    #
    #       both modified:      index.html
    #

    no changes added to commit (use "git add" and/or "git commit -a")

    충돌이 발생하였을 때 문제의 파일을 확인 해보면 아래와 같이 수정이 되있습니다.

    <<<<<<<<HEAD
    (현재 브랜치에 포함된 내용)
    == == == ==
    (다른 브랜치에 포함된 내용)

    >>>>>>>[branch Name]

    적절히 수정하여 저장해주면 됩니다.




    댓글

Designed by Tistory.