Hello It's good to be back ^_^
[ECC-프론트엔드 2팀] 1주차 스터디 본문
교재: Do it! 5일 만에 끝내는 깃&깃허브 입문 1장 ~ 3장
공부한 페이지: pp. 12-123
실습한 내용: https://github.com/HongYeonLee/ECC-Frontend-Study
GitHub - HongYeonLee/ECC-Frontend-Study: ECC 49기 FW 프론트엔드 2팀 이홍연 스터디
ECC 49기 FW 프론트엔드 2팀 이홍연 스터디. Contribute to HongYeonLee/ECC-Frontend-Study development by creating an account on GitHub.
github.com
목차
- 1-1 지옥에서 온 문서 관리자, 깃
- 1-2 깃 설치하고 환경 설정 끝내기
- 1-3 리눅스 명령 연습하기
- 2-1 깃 저장소 만들기
- 2-2 버전 만들기
- 2-3 커밋 내용 확인하기
- 2-4 버전 만드는 단계마다 파일 상태 알아보기
- 2-5 작업 되돌리기
- 3-1 브랜치 알아보기
- 3-2 브랜치 만들기 및 이동히기
- 3-3 브랜치에서 커밋하기
- 3-4 브랜치 병합하기
1-1 지옥에서 온 문서 관리자, 깃
깃의 용도
1. 버전 관리하기 - 파일을 수정할 때 마다 새로운 버전이 나온다. 이를 편히 관리 하기 위한 것이 바로 깃 (Git)
2. 백업하기 - 원격 저장소에 백업하기
3. 협업하기 - 다른 사람들과 같은 파일을 작업하기
깃 프로그램의 종류
깃허브 데스크톱 - 복잡한 깃 사용법을 GUI를 이용해 구현, 쉬우나 기본 기능 위주
토터스깃 - 윈도우 탐색기에 추가되는 윈도우 전용 프로그램
소스트리 - 고급 기능까지 사용 가능
커맨드 라인 인터페이스 (CLI)
터미널 창에 직접 명령어를 입력해서 아용하는 방식, 깃 배시 따로 실행 필요
-> 불편해서 IDE 편집기에서 CLI방식으로도 사용 가능
1-2 깃 설치하고 환경 설정 끝내기
사용자 정보 입력
git config --global user.name "이름"
git config --global user.email "이메일"
1-3 리눅스 명령 연습하기
깃 기본 명령어
pwd : 현재 디렉토리 위치 보기 (print working directory)
ls : 현재 디렉토리에 어떤 파일들이 있는지 보여주기 (list)
ls -l : 현재 디렉토리에 있는 파일들의 상세 정보 보여주기 (대문자 L도 가능)
ls -a : 숨겨진 파일도 전부 표시 (all)
ls -r : 파일 정렬 순서를 거꾸로 표시 (reverse)
ls -t : 파일 작성 시간순(내림차순)으로 표시 (time)
옵션들을 2개 이상 사용할 수도 있다 ex. ls -al
clear : 터미널 창 깨끗하게 전부 지우기
cd : change directory
cd .. : 상위 디렉토리로 이동
cd 디렉토리 이름 : 해당 디렉토리로 이동
cd ~ : 처음 디렉토리 (홈)로 이동
cd . : 현재 작업 중인 디렉토리
cd 드라이브이름: - 해당 드라이브로 이동
mkdir 디렉토리 이름 : 디렉토리를 생성 (make directory)
rm 디렉토리 이름 : 디렉토리 삭제 (remove) (rm 명령어는 휴지통으로 들어가지 않고 즉시 삭제되니 조심하자)
rm -r 디렉토리 이름 : 해당 디렉토리의 하위 디렉토리와 파일도 전부 삭제
exit : 터미널 종료
2-1 깃 저장소 만들기
git init : 현재 디렉토리를 레포지토리로 사용하기 위해 초기화 (initialize) -> .git 이라는 숨겨진 파일이 해당 디렉토리에 생성된다.
2-2 버전 만들기
깃의 핵심은 버전 관리 시스템
파일의 이름은 그대로 유지하면서 파일의 변경 내용과 시점을 저장할 수 있다. 버전마다 작업한 내용을 확인할 수도 있고 해당 버전으로 되돌릴 수도 있다
원리

작업트리 : 내가 작업하고 있는 공간, 눈에 보이는 디렉터리
스테이지 : 버전으로 만들 (커밋할) 파일이 대기하고 있는 공간으로 작업 트리에서 수정한 파일중 버전으로 만들고 싶은 파일만 스테이지로 넘겨주면 된다
저장소 : 스테이지에 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

작업트리에서 작업한 파일을 add 명령을 이용해 스테이지에 넣는다

스테이지에 있는 파일을 commit 명령을 이용해 저장소에 버전을 만든다
git status : 현재 브랜치, 파일 변경 사항, 커밋할 내용이 나온다
git add 파일명 : 파일을 스테이지(.git/index)에 올린다
git commit -m "커밋메세지" : 스테이지에 올라간 파일을 커밋한다
git log : 커밋한 기록을 보여준다. 커밋을 만든 사람, 시간, 커밋 메시지 등
git commit -am : 이전에 한번 커밋한 적 있는 파일은 스테이징과 커밋을 한번에 할 수있다
2-3 커밋 내용 확인하기

커밋 해시 (깃 해시) : 커밋을 구별하는 고유의 아이디
(HEAD -> main) : 해당 버전이 최신 버전이라는 의미
git diff : 작업 트리 <-> 스테이지 <-> 저장소 간의 파일의 차이점을 보여준다
2-4 버전 만드는 단계마다 파일 상태 알아보기
git add . : 작업 트리에 있는 수정 파일들을 모두 스테이지에 올릴 수 있다
git log --stat : 각 커밋마다 어떤 파일이 관련되어있는지 보여준다 (statics), 로그가 너무 길면 엔터를 눌러 하나씩 볼 수 있고 로그에서 빠져나가고 싶으면 Q를 누르면 된다

git commit --amend : 방금 커밋한 메세지 수정
2-5 작업 되돌리기
git restore "파일명" : 작업 트리에서 수정한 내용을 되돌리기
git restroe --staged : 스테이징된 모든 파일 되돌리기
git restore --staged "파일명" : 스테이징된 특정 파일 되돌리기
git reset HEAD^ : 최신 커밋 파일 되돌리기 (작업트리에만 남게됨)
git reset --soft HEAD^ : 최신 커밋을 되돌리는데 스테이징에는 남게됨

git reset --hard 커밋해시 : 특정 커밋으로 되돌리고 그 이후의 커밋은 전부 삭제
git revert .커밋해시 : 특정 커밋을 revert 하고 그 이후의 커밋은 그대로 냅둠

3-1 브랜치 알아보기


3-2 브랜치 만들기 및 이동하기
git branch : 브랜치 확인 및 현재 브랜치
git branch 브랜치이름 : 해당 브랜치 이름으로 브랜치 만들기
git log --oneline : 깃 로그를 한 줄에 한 커밋씩 보여준다
git switch(checkout) 브랜치이름 : 해당 브랜치로 전환한다

3-3 브랜치에서 커밋하기
git log --branches : 브랜치마다 최신 커밋을 볼 수 있다 (--oneline 과 함께 사용 가능)
git log --branches --graph : 브랜치와 커밋의 관계를 그래프로 보여준다 (--graph 단독으로도 사용 가능)
git log --branches --all : 모든 브랜치의 현재 커밋 상태를 보여준다 (--graph와 함께 사용 가능)

git log 브랜치A..브랜치B : 브랜치A를 기준으로 브랜치B와 비교한다 (브랜치A에는 없고 브랜치B에만 있는 커밋을 보여준다)
3-4 브랜치 병합하기
git merge 병합할 브랜치 이름 : A 에 B를 병합시키려면 A 브랜치로 이동후 브랜치 이름에 B를 적어준다


만약 서로 다른 브랜치에서 같은 파일의 같은 부분을 수정하여 병합시에 충돌이 날 경우

======를 기준으로 위 부분은 현재 브랜치에서 수정한 내용, 아래 부분은 병합하는 브랜치에서 수정한 내용을 의미한다.
충돌되는 부분을 해결하기 위해 병합 편집기에서 확인 버튼을 누른다.

[현재 수락] : 현재 브랜치 (main)의 수정 내용을 적용한다는 의미
[수신 수락] : 병합할 브랜치에서 수정한 내용을 적용한다는 의미

두 수정사항을 전부 적용할 수도 있다
git branch -d 브랜치이름 : 해당 브랜치 삭제 (delete), 만약 해당 브랜치가 메인에 병합되지 않은 경우 오류 메세지가 뜨며 -D를 사용시 강제로 브랜치를 사용할 수 있다.
브랜치는 삭제한다고 해서 실제로 사라지지는 않으며 같은 이름으로 다시 브랜치를 만들시 내용을 복구할 수 있다.
cherry-pick 브랜치 병합 : 브랜치의 특정 커밋만 병합할 수 있다


git cherry-pick 해당 커밋 해시 : main 브랜치로 이동 후 topic 브랜치에서 커밋한 t2의 해시를 넣어 명령어를 수행하면 main브랜치에는 t2의 커밋 내용만 반영된다
여러개의 깃 명령을 ;으로 구분해서 사용할 수도 있다
touch 파일명 : 해당 파일 이름으로 빈 파일을 만든다
'Study > 프론트엔드' 카테고리의 다른 글
[ECC-프론트엔드 2팀] 8주차 스터디 (1) | 2024.11.16 |
---|---|
[ECC-프론트엔드 2팀] 7주차 스터디 (0) | 2024.11.12 |
[ECC-프론트엔드 2팀] 6주차 스터디 (0) | 2024.11.12 |
[ECC-프론트엔드 2팀] 3주차 스터디 (2) | 2024.10.10 |
[ECC-프론트엔드 2팀] 2주차 스터디 (2) | 2024.09.29 |