TIL 23-05-15

level·2023년 5월 15일

TIL

목록 보기
1/95

GIT 특강 1회차 (5.15)

pwd : 현재 경로 확인하기

경로

  1. 절대경로: 최초~마지막 모든 경로
  2. 상대경로 : 현재 경로를 기준으로 나타낸경로.

현재경로=점(.) , 상위경로=(..)으로 나타냄

<경로 관련 명령어>

ls : 현재 경로의 파일 및 폴더 조회
ls-a: 숨김까지 확인하기
Ls-al : 숨김파일 및 폴더(ex) .git)까지 모두 목록으로 조회하기
clear: 화면을 깨끗하게 비우기
cd<경로> : <경로>로 이동하기
cd .. : 상위 디렉터리로 이동하기
cd. : 현재 디렉터리로 이동하기
cd~ : 홈 디렉터리로 이동하기

vi 파일명 : 파일명 편집하기

  • 입력모드 a or I / 빠져나오기 esc / 저장 :w / 닫기 :q

<파일 관련 명령어>

touch 파일명 : 파일 생성
cat 파일명 : 파일내용 확인하기
rm 파일명 : 삭제
mkdir : 디렉토리 (폴더) 생성
mrdir : 비어잇는 폴더 삭제
rm –rf : 강제로 지워라 (비어잇지 않은 폴더 삭제)

변경사항 = 버전 = commit

깃: 버전을 관리하기 위한 도구

버전 ? 유의미한 변화가 결과물로 나온 것

유의미한 변화: 새 기능추가, 버그삭제, 수정 등

프로그램 개발 == 유의미한 변화를 쌓아 프로그램을 만들어 나가는 것

깃허브: 원격 저장소 호스팅 서비스
인터넷 상에서 깃으로 관리한 프로젝트 관리해주기
원격으로 관리

깃: 버전을 관리하는 도구
깃헙: 원격 저장소 호스팅 서비스, 개발자들의 sns

깃이 관리하는 세개의 공간 :

  • 작업 디렉터리(워킹트리)
  • 스테이지(인덱스)
  • 저장소(레포지토리, 레포)

스테이지, 저장소 : 깃이 관리하는 가상의 공간

작업디렉 : 버전 관리의 대상이 위치하는 공간. .git이 있는 디렉터리 -> 변경사항들이 생김. 모든걸 다 버전으로 만들어야하는 건 아님. 선별해서 스테이지에 올림

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

저장소: 버전이 만들어지고 관리되는 공간 1. 로컬 저장소(내 컴퓨터) / 2. 원격 저장소(인터넷에서 관리되는)

작업디렉 -> 스테이지 : add
스테이지 -> 저장소 : commit (버전, 버전을 만들다)

  • 하나의 버전이 만들어지는 과정

작업 디렉터리 내에서 변경사항 생성
스테이지로 add
저장소로 commit

저장소와 버전 만들기

git init 로컬저장소 만들기
git status 작업 디렉 상태 확인
git add <스테이지에 추가할 대상> : 스테이지에 올리기
git rm --cached : 스테이지에서 내리기
git commit : 자세한 커밋 메세지와 함께 입력
커밋 메세지 : 모든 버전들에는 커밋 메세지라는 짧은 쪽지를 남겨야 함 = 제목(+본문)
버전 조회 : git log
commit (번호): 커밋 해시
git log --oneline : 제목만 따옴 (커밋해시도 짧아짐) 커밋목록 한 줄로 조회하기
git log --patch (or --p) : 각각의 커밋별 변경사항 목록 조회

git diff : 최근 커밋과 작업 디렉 비교
git diff --staged : 최근커밋과 스테이지 비교
git commit <이 커밋에 비해><이 커밋이 뭐가 달라?> 커밋끼리 비교. 순서 유의

브랜치

사용하는 이유 : 여러개의 흐름으로 관리
브랜치는 버전의 분기
1. 브랜치를 나눈다
2. 각자의 브랜칭서 작업한다2.
3. (필요하다면) 나눈 브랜치를 합친다3.

최초의 브랜치 master 브랜치 = main 브랜치
git branch : 브랜치 이름 확인
⭐: 현재 작업중
git branch <새브랜치이름> : 새 브런치 생성
git checkout <브랜치명>: 작업브랜치 바꾸기 = switch

head 와 체크아웃

헤드 : 포인터. 이정표. 화살표 : 현재 작업 중인 브랜치의 커밋
일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다
한 마디로 내가 지금 어디에서 작업 중인가를 가리킨다

체크아웃: 특정브랜칭에서 작업하수있도록 작업환경을 바꾸는것. 헤드의 위치를 최신커밋을 가리키도록 하는 것

브랜치를 합친다 == 브랜치를 병합한다 (merge)

merge

  1. 새로운 커밋을 만들지 않는 과정 -> 빨리감기(fast-forward) 병합 : master 브랜치는 가만히 있었다. 추가 브랜치에서 추가된 커밋을 반영하기만 하면 됨

  2. 병합 과정에서 새로운 커밋을 만드는 과정 -> 서로 없는 커밋들이 있는 상황 : 두 브랜치를 병합한 새로운 커밋이 생성됨2.
    브랜치 삭제 git branch -d

git checkout <브랜치> 브랜치로 체크아웃
git checkout-b<브랜치> 브랜치 생성하고 ㅊ크아웃
git merge <브랜치> 브랜치 병합

<충돌 해결하기> <-- 매우 중요!! 익숙해지게 연습
1. 충돌을 해결한다 (어떤 브랜치의 내용을 반영할지 직접 선별한다) 반영내용 빼고 다 지우기
2. 다시 커밋한다.

커밋메세지 수정 git commit --amend

1개의 댓글

comment-user-thumbnail
2023년 5월 16일

깃허브 명령어 정리를 열심히 해주신 것 같습니다! 깃은 사실 많이 써봐야지 익숙해지는 분야이기 때문에, 깃허브 레포지토리에 프로젝트를 직접 올리고 갱신해보시면서 실습해보시는걸 추천드려요. 게더 INFO BOARD 추천자료 링크에 있는 깃과 관련된 자료들도 한번씩 봐주시면 좋을 것 같아요!
그리고 TIL 은 공부하시면서 겪었던 오류나 문제들을 해결했던것을 위주로 적어주시면 좋습니다!
화이팅!

답글 달기