Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리눅스 파일동기화
- NAS HDD교체
- Token인증방식
- ci/cd
- github
- OnlineIDE
- gitlab
- 3D프린터입문
- 3D모델링
- nas
- linux job
- docker container
- 코틀린개발환경
- 3D
- C언어
- Notification
- 3D 프린터 용어
- Jenkins
- docker
- 3D프린터
- IoTNetwork
- 3d프린터 초보
- data serialization formats
- Kotlin
- octoprint
- git
- 데이터 직렬화 포맷
- 네이버클라우드
- 3D프린터 입문
- kubernetes
Archives
- Today
- Total
0과 1을 공부하다.
[Git] 자주쓰는 깃 명령어 모음 (CLI) 본문
728x90
프로젝트의 버전을 관리하고 개발자간에 협업을 위해 전체 개발 소스를 공유하기 위해 Git Repository를 위한 웹 기반 호스팅 서비스인 GitHub 또는 GitLab를 많이 사용한다.
GitHub또는 GitLab에 업로드하기 위해 오픈 소스 버전 관리 시스템(VCS: Version Control System)인 Git을 사용하게 된다.
본 게시글에서는 필자가 자주 사용하는 git 명령어를 정리한다.
필자가 자주 쓰는 명령어를 정리하기 때문에 내용이 자세하지는 않다. 자세한 명령어에 대한 정보는 [Git 공식문서]를 참고한다.
Git 저장소 생성(초기화)
1. git init
- git 저장소를 생성(초기화) 한다.
$ git init
Git 전역 옵션 설정
1. git config (git 설정)
- git 전역 옵션을 설정한다.
$ git config --list # 모든 config 항목 출력
$ git config user.name # 사용자 이름정보 출력
$ git config user.email # 사용자 이메일 정보 출력
$ git config --global user.name "홍길동" # 사용자 이름 지정
$ git config --global user.email "support@webisfree.com" # 사용자 이메일 지정
Git 원격 저장소 관리
1. git remote
- 원격 저장소를 관리하는데 사용한다.
- remote랑 origin 용어가 등장하는데 remote는 원격 저장소명을 의미하고 origin은 remote url 주소를 담고 있는 alias를 의미한다.
$ git remote # 원격 저장소를 출력한다.
$ git remote -v # 원격 저장소 주소를 출력한다.
$ git remote add origin [추가할 원격 git 저장소 주소] # 원격 저장소 주소를 추가한다.
Git Branch 관리
1. git branch
- git의 branch를 추가/조회/삭제 한다.
$ git brach [브랜치명] # 로컬 브랜치를 추가한다.
$ git branch # 로컬 브랜치 목록을 출력한다.(1)
$ git branch -l # 로컬 브랜치 목록을 출력한다.(2)
$ git branch -r # 원격지 브랜치 목록을 출력한다.
$ git branch -a # 로컬 + 원격지 브랜치 목록을 출력한다.
$git branch -d [브랜치명] # 브랜치를 삭제한다.
2. git checkout
- git의 branch를 다른 branch로 변경 또는 내용을 되돌린다. (switch or restore)
$ git checkout [브랜치명] # 현재 브랜치를 변경한다.
$ git checkout . #commit 되지 않은 내용을 되돌린다.
Git 작업 내용 업로드 및 내려받기
1. git status
- 작업 디렉토리(working directory)와 스테이징 영역(staging area)의 상태를 확인하기 위해서 사용한다.
$ git status # 모든 작업 내용을 출력한다.
$ git status uno # 현재 브랜치 정보만 출력한다.
2. git add
- 작업 디렉토리(working directory) 상의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해서 사용한다.
$ git add * # 모든 작업내용 add
$ git add [파일명] # 해당 파일의 작업내용을 add 한다.
3. git commit
- 스테이징 영역(Staging Area)에 있는 변경 내용을 로컬 저장소에 업로드한다.
$ git commit # 스테이징 영역에 있는 내용을 커밋한다.
4. git push
- 로컬 저장소(Local Repository)에 있는 코드 변경분을 원격 저장소(Remote Repository)에 업로드하기 위해서 사용한다.
$ git push origin [브런치명] # 원격 저장소로 로컬 저장소 브런치를 업로드한다.
5. git clone
- 저장소에 있는 프로젝트(내용)를 가져온다.
- 원격 저장소의 내용을 그대로 가져오기 때문에 현재 작업중인 내용을 소멸된다.
- 최초에 프로젝트를 불러올 때만 사용한다.
$ git clone [clone URL] # 원격 저장소 url의 내용을 가져온다.
6. git pull
- 저장소에 있는 프로젝트(내용)를 가져온다.
- 현재 브랜치와 병합(Merge)하여 가져오기 때문에 현재 작업내용과 병합되어 가져온다.
- 작업중에 원격 저장소의 변경사항을 반영할 때 사용한다.
$ git pull origin [브랜치명] # 원격 저장소의 내용을 가져온다.
7. git fetch
- 원격 저장소의 최신 이력을 확인한다.
- pull 명령어를 사용하면 원격 저장소의 최신이력을 반영하여 병합하게 되는데, fetch 명령어는 최신 이력한 조회한다.
$ git fetch # 원격 저장소의 최신 이력을 조회한다.
Git 변경이력 관리
1. git diff
- 파일의 어떤 내용이 변경되었는지 차이점을 비교한다.
$ git diff --staged # 스테이징 영역의 변경사항을 확인한다.
2. git log
- 커밋 히스토리를 조회한다.
$ git log # 모든 로그를 조회한다.
$ git log -n [숫자] # 최근에서부터 n개 출력
Git 수정 이전으로 내용 돌리기
$ git reset --hard #모든 변경사항 되돌리기
$ git checkout -- src/hello.c #특정 파일만 되돌리기
Git 작업절차(시나리오)
1. 저장소 생성 후 업로드 (init) : 새로운 프로젝트를 생성할 때
- 저장소 디렉토리에서 새로운 저장소를 생성한다.(init)
- 변경 내용을 모두 반영한다.(add)
- 스테이징 영역에 있는 내용을 로컬에 업로드한다. (commit)
- commit이 정상적으로 반영되었는지 확인한다. (log)
- 로컬 저장소와 원격 저장소를 연결한다. (remote add)
- 로컬 저장소에 있는 내용을 원격 저장소에 업로드한다. (push)
2. 저장소 내려받은 후 작업 (clone) : 이미 있는 프로젝트를 내려받은 후 작업할 때
- git 원격 저장소에 있는 내용을 로컬에 내려받는다. (Clone)
- 로컬에서 사용할 새로운 브랜치를 생성한다.(branch)
- 생성한 브런치로 변경한다. (checkout)
- 작업하고자 하는 브랜치의 내용을 내려 받는다. (pull)
- 변경사항을 수정하고 변경 내용을 스테이지 영역에 올린다. (add)
- 변경된 파일의 내용을 검토한다. (diff)
- 스테이징 영역에 있는 내용을 로컬에 업로드한다. (commit)
- commit이 정상적으로 반영되었는지 확인한다. (log)
- 원격 저장소에 수정사항이 있다면 반영한다. (pull)
- 로컬 저장소에 있는 내용을 원격 저장소에 업로드한다. (push)
- 변경사항이 반영된 브랜치를 GitHub 또는 GitLab에서 목표 브랜치와 병합한다. (Merged)
참고사이트
※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.
* CopyRight 2022. Jay Park All rights reserved.
728x90
'Study > ETC' 카테고리의 다른 글
[Cloud] 문자(sms) 매크로 만들기 - Cloud Functions(Naver Cloud) (0) | 2023.01.08 |
---|---|
[Cloud] 문자(sms) 매크로 만들기 - Simple & Easy Notification Service (Naver Cloud) (0) | 2023.01.08 |
[NAS] 시놀로지 NAS 데이터를 안전하게 보관(백업)하는 방법 - Hyper Backup (0) | 2022.11.01 |
[Contest] 2022 국방 데이터 활용 경진대회에 참가하다 - 국방 단어교정 체계 (0) | 2022.09.18 |
[OS] VirtualBox(VM) 가상네트워크 설정 (0) | 2022.09.07 |
Comments