daino_saur
article thumbnail
반응형

 

 

깃의 핵심기능 ‘버전 관리’ ‘백업’ ‘협업’

 

  1. 버전 관리 - 깃은 문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템
  2. 백업 - GitHub를 통해 자료들을 백업할 수 있다.
  3. 협업 - 깃허브를 통해 파일을 편하게 주고받으며 협업할 수 있다.

 

버전 관리 - 백업 - 협업 순으로 이해

 

깃 프로그램의 종류

 

깃허브 데스크톱 - 쉽지만 고급 기능이 아쉬움

토터스깃 - 윈도우 전용 프로그램

소스트리 - 기본부터 고급까지 사용가능 but 어려움

 

커맨드 라인 인터페이스(CLI)

 

터미널 창에 직접 명령을 입력해 사용하는 방식

-리눅스 명령을 알아야 하고, 깃 명령도 외어야 함

-가장 빠르게 깃을 다룰 수 있고 반복해야 할 일을 자동화시키거나 서버 환경에서 깃을 사용 가능

-대부분의 개발자가 커맨드 라인 인터페이스로 깃을 사용

 

 명령어

 

폴더(윈도우) = 디렉터리(리눅스)

  • pwd         :      현재 위치의 경로(print working directory)
  • ls         : 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인, 이름 뒤(/)가 있는 게 디렉터리
  • clear : 화면정리
  • (뛰고)- : 옵션추가, 두 옵션을 함께 쓰려면 순서 상관없이 붙이기

 

ls 명령 옵션

  • -a : 숨긴 파일과 디렉터리도 함께 표시
  • -l : 파일이나 디렉터리의 상세 정보를 함께 표시
  • -r : 파일의 정령 순서를 거꾸로 표시
  • -t : 파일 작성 시간 순으로(내림차순) 표시

 

  • cd : 터미널 창에서 디렉터리 사이를 이동할 때 사용(change directory)
  • cd.. : 상위 디렉터리로 이동
  • cd (하위 디렉터리 이름) : 하위 디렉터리로 이동
  • cd ~ : 홈 디렉터리로 돌아가기

 

리눅스에서 디렉터리를 나타내는 기호 ⭐️

  • ~ : 사용자의 홈 디렉터리를 알려줌
  • ./ : 현재 사용자가 작업 중인 디렉터리
  • ../ : 현재 디렉터리의 상위 디렉터리

 

터미널 창에서 디렉터리 만들기 및 삭제하기

  • mkdir : 현재 디렉터리 안에 하위 디렉터리 만들기(make directory)
  • rm : 디렉터리 삭제(remove)
  • rm -r : 디렉터리 안에 있는 하위 디레거리와 파일까지 함께 삭제

*삭제할 디렉터리의 상위 디렉터리에서 rm명령을 입력해야 함*

 

빔에서 텍스트 문서 만들기

  • vim : 뒤에 입력한 파일이름이 있으면 열고, 없으면 만든다.
  • 입력 모드  : 문서를 작성
  • ex 모드 : 문서를 저장
  • *처음에는 ‘ex 모드’로 열린다.
  • 입력 모드로 가려면 - I(Insert)나 A(Add) 클릭
  • ex 모드로 가려면 - esc 클릭

 

빔 ex 모드 명령 모음

  • :w : 문서 저장(write)
  • :q : 편집기 종료(quit)
  • :wq (파일): 저장하고 종료, 파일 이름 입력 시 그 이름으로 저장
  • :q! : 저장하지 않고 종료, 확장자가 .swp 인 임시파일 생성됨

 

***     git config —global core.editor “편집기 이름”을 통해 편집기 변경 가능***

 

텍스트 문서 내용 확인

  • cat : 간단히 텍스트 문서 내용 확인(concatenate-연쇄하다)
  • cat (파일): 파일 내용 화면에 표시
  • cat (파일 1, 파일 2… 파일 n> 새 파일) : 파일 n개를 차례로 연결해서 새로운 파일을 만듦
  • cat (파일 1>>파일 2):  파일 1의 내용을 파일 2 끝에 연결

 

깃으로 버전 관리하기

 

버전 : 문서를 수정할 때마다 간단한 메모와 함께 수정 내용을 스냅숏으로 찍어서 저장하는 것

  • git init (파일) : 디렉터리를 초기화(initialize-초기화하다) - 저장소 생성
  • (Shift)+(Command)+(.) : 숨은 파일 보기
  • git status : 깃 상태 확인

 

작업트리 : 파일 수정, 저장 등의 작업을 하는 디렉터리

스테이지 : 버전으로 만들 파일이 대기하는 곳

저장소 : 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

 

버전을 만드는 순서작업 : 트리에서 문서를 수정 - 수정한 파일 중 버전으로 만들고 싶은 것을 스테이지에 저장 - 스테이지에 있던 파일을 저장소로 커밋

 

untracked files : 한 번도 버전 관리하지 않은 파일

 

스테이징(staging) : 깃에게 버전 만들 준비를 하라고 알려주는 것

git add (파일) : 스테이징

git add. : 파일 여러 개를 한 번에 스테이징

 

커밋(commit) : 버전을 만드는 것 - 그 버전에 어떤 변경 사항이 있었는지 메시지를 함께 기록해한다

git commit : 커밋하기

-m : 메시지 추가

-a : 스테이징,커밋 한 번에 하기 - but 한 번이라도 커밋한 적이 있는 파일만 사용 가능

 

commit 내용 확인

git log : 지금까지 만든 버전과 설명 확인 - 커밋 로그라고 부름

git diff : 작업 트리에 있는 파일과 스테이지에 있는 파일 비교, 파일과 저장소에 있는 최신 커밋을 비교 - 수정 파일을 커밋하기 전 최종 검토

git log  --stat : 관련 파일 같이 보기

git log --oneline: 한 줄에 한 커밋씩 나타내줌

git log --branches : 각 브랜치의 커밋을 함께 봄

git log --graph : 그래프 형태로 표시

 

.gitignore 파일을 만들어 버전 관리에서 제외시킬 수 있다. - 주로 개인적 메모, swp 파일, 백업 파일 등이 있다

 

git commit  --amend : 방금 커밋한 메시지 수정

 

작업 되돌리기

git checkout-- (파일이름) : 변경사항 취소.  ————> 변경 : git restore (파일이름)

git reset HEAD (파일) : 스테이지에서 내리기. —————  > 변경 : git restore --staged (파일이름)

git reset HEAD^ : 가장 최신 커밋 취소하고 스테이지에도 내리기 - 작업트리에는 남는다.

* git reset HEAD~3 : 최근 3개의 커밋을 취소*

 

git reset 명령 옵션

 

특정 커밋으로 되돌리기

커밋 해시 = 커밋 ID

git reset —hard (돌아갈 커밋 해시) : 특정 커밋을 최신 커밋으로 이동

 

커밋 삭제하지 않고 되돌리기

git revert (되돌릴 커밋 해시) : 커밋을 삭제하지 않고 되돌림

 

브랜치(Branch[나뭇가지])

branch [분기]한다. - master 브랜치에서 뻗어 나오는 새 브랜치를 만드는 것

merge [병합]한다.- 분기했던 브랜치를 master 브랜치에 합치는 것

 

git branch (파일) : 브랜치를 만들거나 확인

*HEAD는 작업 중인 브랜치를 가리키는 포인터*

 

git checkout (브랜치명) : 다른 브랜치로 이동. ———————> 변경 : git switch (브랜치명)

 

브랜치 사이 차이점 보기

git log main..apple : main브랜치에는 없고 apple브랜치에만 있는 거 보기

 

브랜치 병합

git merge (가져올 파일) : 브랜치 병합

*빨리 감기 병합 : 브랜치를 나눈 뒤 새로운 커밋을 안 만들었으면 커밋 메시지 창이 열리지 않고 빠르게 병합된다. *

*git merge (파일) --no-edit : 병합할 때 편집기 창 열리지 않는다* - 다시 열려면 : --edit만

*수정 내용을 자연스럽게 하나의 파일로 합쳐준다.*

 

브랜치 삭제

git branch -d (브랜치명) : 브랜치 삭제

*main브랜치에 병합하지 않은 브랜치를 삭제하려면 오류가 뜨는데 이때[ -D] 옵션을 사용해 강제 삭제 가능*

*깃의 흐름에서 감추는 것일 뿐 없어진 것은 아니므로 다시 같은 이름으로 브랜치 생성 시 작업 내용 그대로 있음*

 

git reset : HEAD가 가리키고 있는 브랜치의 최신 커밋을 원하는 커밋으로 지정 - 어떤 브랜치에 있는 커밋이든 지정 가능하고, 브랜치와 연결이 끊긴 커밋은 삭제

 

수정 중인 파일 감추기 및 되돌리기

git stash : 커밋하지 않은 수정된 파일을 다른 곳에 보관하며 숨김

git stash pop : 제일 최근에 숨긴 stash를 불러옴

git stash apply : stash를 불러오지만 저장했던 내용을 그대로 둠

git stash drop : stash 목록에 가장 최근 항목을 삭제

*새로 추가된 파일이 “0”으로 가고 이미 있던건 1 추가* - [stash stack]

반응형

'프로그래밍 > Git&GitHub' 카테고리의 다른 글

Git Flow  (0) 2024.05.16
깃허브 데스크탑[GitHub Desktop] 가이드  (0) 2023.08.06
profile

daino_saur

@daino

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!