일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Infra
- Intellij
- goland
- Logrus
- Buffered channel
- http 413
- intellij ide
- Golines
- GoF 디자인패턴
- 배포 프로세스
- golang
- notification system
- go
- UnBuffered channel
- apollo router
- System Design
- AWS
- Kubernetes
- 디자인패턴
- Bastion Server
- 컴포지트패턴
- gitops
- 윈도우키보드
- GoF
- AWS Infra
- body size
- 배포 파이프라인
- Helm V3
- tenneling
- 대규모 시스템 설계
- Today
- Total
Fall in IT.
Git 기초 명령어 본문
안녕하세요. 오늘은 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]
- 공개된 원격 저장소의 프로젝트를 내 컴퓨터(로컬 저장소)에 다운로드 하는 명령어
모두 즐거운 코딩하세요~
'기타' 카테고리의 다른 글
애플 앱스토어 개발자 등록 방법 (12) | 2017.01.23 |
---|---|
ES6 기본 맛보기 (0) | 2017.01.12 |
자바 입출력(I/O )에 대하여 (0) | 2016.11.09 |
html에서 label 태그 사용하는 방법 (4) | 2016.11.02 |
인터프리터언어와 컴파일언어에 대해서 (0) | 2016.10.09 |