Git & GitHub

[Git/Github]용어정리

2022. 11. 10. 17:40
목차
  1.  
  2. 2장.깃으로 버전 관리 시작하기
  3. 3장 버전 가지고 놀기
  4. 4장.브랜치로 나누어 관리하기
  5. 5장. 깃허브로 협업하기
  6. 깃명령어

 

2장.깃으로 버전 관리 시작하기

●작업디렉터리: 버전 관리의 대상이 위치하는 공간

●버전관리: 작업디렉터리의 변경사항을 관리

●스테이지: 다음 버전이 될 후보가 올라가는 공간

●저장소: 버전이 만들어지고 관리되는 공간

●커밋해시: 각 커밋이 가진 고유한 ID

●태그: 특정 커밋에 붙일 수 있는 꼬리표. 의미 있는 커밋이 무엇인지 한눈에 알아볼 수 있음.

 

3장 버전 가지고 놀기

●커밋되돌리기

1.revert: 버전을 되돌리되, 되돌아간 상태에 대한 새로운 버전을 만드는 방식. 기존 버전은 삭제되지 않음.

 

 

2.reset: 되돌아갈 버전의 시점으로 완전하게 되돌아가는 방식. 기존 버전은 삭제됨.

 

2-1.soft reset: 커밋했다는 사실만 되돌림

 

 

2-2.mixed reset: 스테이지와 커밋을 되돌리는 reset

 

 

2-3.hard reset: 작업 디렉터리 내 변경 사항까지 통째로 되돌리는 reset

 

 

●스태시(stash) : 임시 저장 기능. 마음에 들진 않지만 버리기 아까운 작업을 처리할 때 사용. 스테이지에 이미 올라와 있거나 한번이라도 커밋한 적이 있는 파일에만 사용할 수 있음.

 

4장.브랜치로 나누어 관리하기

●버전관리 3단계

 

●HEAD: 현재 작업 중인 브랜치의 최신 커밋.

●CheckOut: 특정 브랜치에서 작업할 수 있도록 작업환경을 바꾸는 것.

 

●merge: 브랜치를 하나로 통합하는 방법

 

빨리감기 병합(좌)와 그냥 병합

 

●충돌: 병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황

●충돌 해결방법: 1.어떤 브랜치의 내용을 반영할지 직접 선택한다. 2. 다시 커밋한다

재배치(rebase)

rebase전(좌)와 rebase후(우) 사진

 

5장. 깃허브로 협업하기

 

●원격 저장소의 네가지 상호작용

1.clone : 복제

2.push: 원격저장소에 로컬 저장소의 변경사항 밀어넣기

3.fetch: 원격 저장소를 일단 가져만 오기. 병합을 하진 않음.

4.pull: 원격 저장소를 가져와서 합치기. fetch + merge

 

●원격 저장소 브랜치 이름

main 브랜치 == master 브랜치

origin == 원격 저장소에 붙은 별명

origin/HEAD == 원격 저장소 origin의 HEAD

origin/main == 원격 저장소 origin의 manin

 

●Pull Request: 원격 저장소가 내 변경사항을 풀(Pull)하도록 요청(Request)을 보내는 방식

 

깃명령어

git init: 로컬 저장소 만들기

git status: 작업 디렉터리 상태 확인하기

git add

  • git add <스테이지에 추가할 대상>: <스테이지에 추가할 대상>을 스테이지에 올리기
  • git add . : 모든 변경 사항을 스테이지에 올리기

git commit

  • git commit : 자세한 커밋 메시지와 함께 커밋하기
  • git commit --message "<커밋 메시지>" / git commit -m "<커밋 메시지>" : <커밋 메시지>로 커밋하기

git log

  • git log : 커밋 목록 조회하기
  • git log --oneline : 커밋 목록을 한 줄로 조회하기
  • git log --patch / git log -p : 커밋별 변경 사항 목록 조회하기
  • git log --graph : 커밋 목록을 그래프로 조회하기
  • git log --branches : 모든 브랜치의 커밋 목록 조회하기

git tag

  • git tag <태그> : <태그> 추가하기
  • git tag <태그> <커밋> : <커밋>에 <태그> 추가하기
  • git tag / git tag --list / git -l : 태그 목록 조회하기
  • git tag --delete <태그> / git tag -d <태그> : <태그> 삭제하기

 

touch: 파일 생성하기

 

git diff

  • git diff : 최근 커밋과 작업 디렉터리 비교하기
  • git diff --staged : 최근 커밋과 스테이지 비교하기
  • git diff <커밋2> <커밋1> : <커밋1>로 <커밋2>와 비교하기
  • git diff <브랜치2> <브랜치1> : <브랜치1>로 <브랜치2>와 비교하기

git revert

  • git revert <취소할 커밋> : <취소할 커밋>이 취소된 새로운 커밋 만들기

git reset

  • git reset --soft <되돌아갈 커밋> : <되돌아갈 커밋>으로 soft reset하기
  • git reset --mixed <되돌아갈 커밋> / git reset <되돌아갈 커밋> : <되돌아갈 커밋>으로 mixed reset 하기
  • git reset --hard <되돌아갈 커밋> : <되돌아갈 커밋>으로 hard reset 하기

git stash

  • git stash : 변경 사항 임시 저장하기
  • git stash --message "<메시지>" / git stash -m "<메시지>" : <메시지>와 함께 변경 사항 임시 저장하기
  • git stash list : 임시 저장된 작업 내역 조회하기
  • git stash apply <스태시> : 임시 저장된 작업 적용하기
  • git stash drop <스태시> : 임시 저장된 작업 삭제하기

git branch

  • git branch : 브랜치 목록 조회하기
  • git branch <브랜치> : <브랜치> 만들기
  • git branch --delete <브랜치> / git branch -d <브랜치> : <브랜치> 삭제하기

git checkout <브랜치> : <브랜치>로 체크아웃하기

git checkout -b <브랜치> : <브랜치> 생성하고 체크아웃하기

git rebase <브랜치> : <브랜치>로 재배치하기

git clone <원격 저장소> : 원격 저장소를 복제하기

git remote 

  • git remote add origin <원격 저장소 이름> <원격 저장소> : <원격 저장소> 추가하기
  • git remote : 원격 저장소 이름 조회하기
  • git remote --verbose : 원격 저장소 이름과 경로 조회하기

git push 

  • git push <원격 저장소 이름> <브랜치> : <원격 저장소 이름>에 <브랜치>를 밀어넣기

git fetch

  • git fetch <원격 저장소 이름> : 원격 저장소를 일단 가져만 오기

git pull

  • git pull <원격 저장소 이름> : 원격 저장소를 가져와서 합치기

git <명령> --help : <명령>에 대한 매뉴얼 페이지 보기

 


출처:모두의 깃&깃허브(저자:강민철 / 출판사:길벗)

  1.  
  2. 2장.깃으로 버전 관리 시작하기
  3. 3장 버전 가지고 놀기
  4. 4장.브랜치로 나누어 관리하기
  5. 5장. 깃허브로 협업하기
  6. 깃명령어
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자
  • 프로그래머스
  • 쿼리
  • 스프링
  • spring
  • 백엔드
  • 연습문제
  • 오류
  • 백준
  • 네트워크
  • 자바의정석기초편
  • 서브쿼리
  • 자바의정석
  • 객체지향
  • 오라클
  • 에러
  • SQL
  • 뉴렉처
  • 웹프로그래밍
  • 배열
  • Oracle
  • db
  • 모두의네트워크
  • 자바
  • It
  • 알고리즘
  • 국비수업
  • Java
  • 코딩
  • 공부

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[Git/Github]용어정리
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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