Fall in IT.

Git 기초 명령어 본문

기타

Git 기초 명령어

D.Y 2016. 12. 23. 18:37

안녕하세요. 오늘은 Git 커맨드에 대해서 간단히 알아보겠습니다.


특정 GUI Git 클라이언트를 사용하는 것도 좋으나, 운영체제(OS)에 종속적인 경우가 있습니다.

따라서, Git command 에 익숙해진다면 운영체제에 종속적이지 않게 어디서나 자유롭게 깃을 사용할 수 있습니다.



<Git 기본 명령어>

$ git init

- 현재 디렉터리를 Git repository로 설정하는 명령어


.gitignore 파일 생성하기


$ git status

- Git repository 상태를 보여주는 명령어


$ git add

- working directory 에 있는 파일을 staging area로 이동시키는 명령어

- $ git add <file name>

- $ git add .  : 현재 디렉터리의 모든 파일을 staging area로 이동시키는 명령어


$ git rm -cached <file name>

- staging area에 있는 파일을 working directory로 이동시키는 명령어


$ git commit

- staging 영역에 있는 파일을 repository에 저장하는 명령어

- git commit -m [message] : 간다한 커밋 메시지를 입력하는 경우 사용

- git commit -a -m [message] : working directory에 있는 파일을 staging area로 이동 시키고, 커밋까지 진행하는 명령어


$ git log

- 저장소에 있는 커밋 이력을 조회하는 명령어

- $ git log --oneline : 한줄로 간단히 커밋 이력을 조회

- $ git log --oneline --decorate --graph --all : 모든 브랜치 커밋 이력 조회

- $ git log -- <file name> : 특정 파일 커밋 이력 조회


$ git diff

- 다른 커밋과 working directory를 비교하는 명령어

- $ git diff [Commit ID] : 특정 커밋과 차이점 비교

- $ git diff [Commit ID] -- [파일경로] : 특정 커밋의 특정 파일과 차이점 비교


$ git branch

- 브랜치를 생성, 삭제, 수정하는 명령어

- $ git branch [브랜치명] : 브랜치 생성

- $ git branch -d [브랜치명] : 브랜치 삭제

- $ git branch -m [기존 브랜치명] [변경할 브랜치명] : 브랜치 이름 수정


$ git checkout

- working directory의 소스를 특정 소스로 변경하는 명령어

- $ git checkout [브랜치명] : 특정 브랜치로 워킹 디렉터리 변경

- $ git checkout [Commit ID] : 특정 커밋으로 워킹 디렉터리 변경

- $ git checkout -- [파일경로] : 특정 파일을 해당 브랜치 또는 커밋 상태로 변경


$ git merge

- 다른 두개의 소스를 병합하는 명령어

- develop의 브랜치에서 master로 병합하려는 경우
    - $ git checkout master : 마스터 브랜치로 이동

    - $ git merge develop  : 병합하려는 브랜치를 머지합니다.

- 중복되는 위치를 변경하지 않을 경우, git이 알아서 병합해줍니다.

- 소스코드가 중복되는 위치가 병합되는 경우, confilict(충돌)가 발생합니다.

 
conflict ex)

        <<<<<<< head :

 현재 브랜치에 포함된 내용 (master)

======================

다른 브랜치에 포함된 내용 (develop)

>>>>>>>> 브랜치명(develop)


Github 기본 개념

1) Rpository Fork

- 다른 사람이 깃헙에 오픈한 프로젝트를 나의 프로젝트로 옮기는 기능을 말합니다.

2) Pull request

- 포크한 프로젝트에 변경해야할 부분에 대해서 커밋한 후, 원작자에게 소스 변경을 요청하는 기능을 말합니다.


깃헙에서 좋은 코드를 많이 보는 것은 프로그래밍 실력향상에 많은 도움이 됩니다.

- 깃헙에서 좋은 소스코드 판단기준 : 포크 수, star 수가 많다는 것은 많은 사람들이 관심을 가지고 있는 프로젝트라고 봐도 무방합니다.


Github 기능들

1) watch/unwatch : 프로젝트가 커밋되거나 할 경우 알림을 받는 기능

2) star : 프로젝트 즐겨찾기 기능

3) issues : 이슈 트레킹 기능


$ git remote add [alias] [url]

- 로컬 저장소에 원격 저장소 url 을 등록하는 명령어


$ git fetch [alias] [branch]

- 원격 저장소에 있는 내용을 로컬로 받는 명령어 (워킹디렉터리는 변함없습니다.)


$ git pull [alias] [branch]

- 원격 저장소에 있는 내용을 로컬로 받고 자동으로 Merge를 수행하는 명령어


$ git push [alias] [branch]

- 로컬 저장소의 내용을 원격 저장소로 업로드 하는 명령어


$ git clone [url]

- 공개된 원격 저장소의 프로젝트를 내 컴퓨터(로컬 저장소)에 다운로드 하는 명령어




모두 즐거운 코딩하세요~





Comments