[Git] Git 기초

2023. 3. 17. 22:27· Git
목차
  1. 7. git help
반응형

제대로 파는 Git & GitHub - by 얄코

 

 

이 포스팅에서 작성하는 내용은 제대로 파는 Git & GitHub - by 얄코 에서 발췌하였습니다.

 

https://inf.run/KAyf

 

제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의

코알못도 따라올 수 있는 친절하고 쉬운 강좌! 현업 개발자는 Git 박사로 들어주는 끝판왕 강좌!, - 강의 소개 | 인프런

www.inflearn.com

 


1. Git

  • VCS(Version Control System)  도구로서, 프로그래머가 입력한 소스들을 시간별로, 공간별로 잘 정리해주는 프로그램
  • 특정 시점에 입력한 소스에서 무슨 내용이 추가됐는 지를 확인할 수도 있고 아예 그 입력을 없던 것으로 돌릴 수도 있다.
  • 프로젝트 안에서 자신만의 실험 기능을 할 때, 다른 사람들도 사용하는 공간이 아니라 새로운 공간을 만들어서 그 공간 안에서 구현할 수도 있다. (물론, 추후에 공간끼리 합치는 것도 쉽게 가능하다)

 

 

2. Git의 기본 명령어

  • git init : '이 프로젝트를 git으로 관리하겠다' 라는 명령어
    • 이 때, .git 이라는 숨김 폴더가 생성되는데, 이 폴더에는 소스 수정 내역과 같은 관리 데이터가 쌓인다.
  • git status : git 상태 확인(추가되거나 변경, 삭제된 파일)
  • git commit 
    • git commit -m "msg"
    • git commit : 명령어 입력 시, vim 에디터로 이동한다. 편집기 내부에서 메시지를 적고 저장 후 나오면 된다.
  • git diff : 변경사항 세부내용 확인. (vim 에디터로 보여준다.)
  • git log : 커밋 내역 확인

 

3. Git Ignore

  • 특정 파일들을 git에서 관리하고 싶지 않을 때 사용한다.
  • .gitignore 파일에 특정 파일을 표현하면 git에서 관리하지 않는다.
  • 표현 방식 : https://git-scm.com/docs/gitignore 
 

Git - gitignore Documentation

The optional configuration variable core.excludesFile indicates a path to a file containing patterns of file names to exclude, similar to $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to those in $GIT_DIR/info/exclude.

git-scm.com

 

 

4. 시간 되돌리기

  • git reset : 원하는 시점으로 돌아간 후, 그 이후의 커밋 내역들은 삭제
    • git reset --hard [git log에서 찾은 돌아갈 커밋의 해시코드] 
      • --soft, --mixed 옵션도 있으며, 해당 내용은 다음 포스팅에서 작성
      • 커밋의 해시코드 뿐 아니라 HEAD를 이용해서 시점을 지정할 수 있다.
  • git revert : 돌리고 싶은 특정 커밋을 실행됐던 내역을 반대로 실행시킨다. (이 내역조차 기록)

 

 

5. branch

  • git branch [branch-name] : git branch 생성
  • git branch : git branch 목록 보기 및 현재 branch 표시
    • git branch -all : 원격 저장소의 branch까지 표시
  • git switch [branch-name] : git 현재 branch 변경
  • git branch -d [branch-name] : git branch 삭제 (-D : 강제 삭제)
  • git branch -m [before-name] [after-name] : git branch 이름 변경
  • git log --all --decorate --oneline --graph : 모든 브랜치 커밋 내역 확인
  • branch 통합 방법
    • Merge : 하나의 브랜치를 다른 브랜치에 커밋한다. 
      branch의 사용 내역을 남겨두며, 이 조차 커밋이기 때문에 reset이 가능하다.
      • git merge [branch-name] : branch-name을 현재 branch로 merge한다.
      • git merge --abort : merge 중 충돌이 났을 때, merge 중단
    • Rebase : 하나의 브랜치를 잘라내서 그대로 다른 브랜치에 붙인다. (줄기가 한 줄로 보임)
      • git rebase [branch-name] : 현재 branch를 [branch-name]에 rebase한다.
      • git rebase --abort : rebase 중 충돌이 났을 때, rebase 중단
      • git rebase --continue : rebase 다시 진행
    • cherry-pick : 다른 브랜치에 있는 커밋 내역을 선택적으로 현재 브랜치로 복사한다.

 

 

6. GitHub

  • git remote add origin [원격 저장소 주소] : 원격 저장소의 주소를 origin이라는 이름으로 추가한다.
    (origin 이름 수정 가능)
  • git push -u origin main : origin(원격저장소)로 현재 main의 내용을 push한다.
    -u : main 과 명시된 원격 브랜치(origin)을 기본 연결하겠다.
    추후에, git push  명령어 만으로도 알아서 push가 된다.
    • git push --force : 강제 Push
  • git remote remove [원격 저장소 이름] : 원격 저장소 주소가 아닌, git remote add로 추가한 원격 저장소 삭제
    참고) 실제 GitHub가 지워지지 않는다
  • git clone [원격 저장소 주소] : 원격 저장소의 파일을 내려받는다.
  • git pull : 원격 저장소의 내용을 로컬 저장소로 update한다.
    • git pull --rebase : rebase를 하면서 pull 한다.
    • git pull --no-rebase : pull 받으면서 알아서 merge가 된다.
      (로컬 레파지토리 브랜치와 원격 저장소의 브랜치를 merge)
  • git fetch : 원격 저장소의 변경사항을 확인한다. 
    ex) 원격에서 새로운 브랜치를 만든 경우, fetch를 하면 로컬에 해당 브랜치가 자동으로 업데이트 된다.
  • git switch -t [원격 저장소 이름]/[원격 브랜치] : 브랜치를 원격 저장소의 원격 브랜치로 이동하겠다.
    -t : 이 원격 브랜치를 원격 저장소의 기본 브랜치로 설정하겠다.
  • git push [원격 저장소 이름] --delete [원격 브랜치] : 원격 저장소의 원격 브랜치 삭제

 

7. git help

  • git help : git 도움말 명령어
    • -a : Git의 모든 명령어 리스트
    • git (명령어) -h : 해당 명령어의 설명 및 옵션 보기
      ex) git commit -h
    • git help (명령어) : 해당 명령어의 설명을 자세한 웹사이트에서 보기
      ex) git help commit
  • https://git-scm.com/book/ko/v2 git 설명서 (한국어 버전. PDF 다운로드 가능)
반응형

'Git' 카테고리의 다른 글

[Git] Review Comment Pending  (0) 2023.05.28
[Git] branch, log, hooks  (0) 2023.03.19
[Git] clean, restore, reflog, tag  (0) 2023.03.19
[Git] Git fetch pull, config, hunk, stash  (0) 2023.03.19
[Git] Git 구조  (0) 2023.03.18
  1. 7. git help
'Git' 카테고리의 다른 글
  • [Git] branch, log, hooks
  • [Git] clean, restore, reflog, tag
  • [Git] Git fetch pull, config, hunk, stash
  • [Git] Git 구조
멍목
멍목
개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
반응형
멍목
김멍목의 개발블로그
멍목
전체
오늘
어제
  • 분류 전체보기 (514)
    • BE (190)
      • Spring (21)
      • Java (141)
      • Kotlin (6)
      • JPA (22)
    • FE (33)
      • Javascript (16)
      • Typescript (0)
      • React (5)
      • Vue.js (9)
      • JSP & JSTL (3)
    • DB (32)
      • Oracle (22)
      • MongoDB (10)
    • Algorithm (195)
    • Linux (8)
    • Git (6)
    • etc (42)
    • ---------------------------.. (0)
    • 회계 (4)
      • 전산회계 2급 (4)
    • 잡동사니 (2)

블로그 메뉴

  • 홈
  • 관리

공지사항

인기 글

태그

  • vue3 공부
  • 전산회계 2급 준비
  • JPA 공부
  • 알고리즘공부
  • Oracle
  • 이펙티브 자바
  • 더 자바 Java 8
  • 자기개발
  • 프로젝트로 배우는 Vue.js 3
  • 자바 개발자를 위한 코틀린 입문
  • 자기공부
  • 자바공부
  • 코테 공부
  • 자기 공부
  • 자바 공부
  • JPA
  • MongoDB 기초부터 실무까지
  • MongoDB with Node.js
  • junit5
  • Effective Java
  • 더 자바 애플리케이션을 테스트하는 다양한 방법
  • 이펙티브자바
  • 자바 테스팅 프레임워크
  • Java to Kotlin
  • 코틀린
  • MongoDB 공부
  • 자기 개발
  • java 8
  • 코테공부
  • 알고리즘 공부

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
멍목
[Git] Git 기초
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.