패스트캠퍼스의 '프론트엔드 개발 올인원 패키지'에 포함되어있는 짧은 깃 강의를 들었었는데 들은지도 오래되었고, 쓸 일이 없다보니 아직 채득하지 못해
드림코딩 by 엘리의 깃 강의를 들었는데 전체 강의가 무료인줄 알고 들었으나, 해당 유튜브에 올라온 것은 깃 강의의 일부분이고 드림코딩 사이트에서 나머지 강의를 들을 수 있다.
시간이 되면 이전에 들었던 패캠의 강의를 다시 듣던지, 결제하여 나머지 강의를 수강하고자 한다.
Git
깃이란 버전을 편리하게 관리할 수 있도록 도와주는 도구로,
vcs(version control system) 중 하나이다.
코드뿐만아니라 텍스트, 그래픽레이아웃 파일도 관리할 수 있다.
버전관리 도구의 종류
Centralized version Control
ex) cvs, subversion, perforce
Distributed Version Control
ex) git, mercurial, darcs
Git의 역사
리눅스 커널 팀이 버전 관리 시스템으로 - Bitkeeper 도입
-> but 유료화
-> 앞전의 서비스를 디벨롭하여 Linux Torvalds가 깃을 출시
steam of snapshots
Git을 써야하는 이유
명령어를 기본으로한 명령어 프로그램이기에
터미널에서 커멘드로 배워야지 깃을 정확하게 사용하는 법을 배울 수 있다.
쉬운 사용을 돕는 Ui도 다수 있다
맥북에 깃 설치하기
깃 설치방법 및 git config 설정
상단의 링크를 참고하여 m1 맥북에 깃을 설치했다.
git config
.gitconfig - 깃과 관련된 모든 정보 저장되어 있음
git config —list //모든 정보확인 가능
단축키 q 누르면 다시 터미널로 돌아온다
git config —global - e //터미널 확인 가능
git config —global core.editor “code”
git config —global - e //하면 비스코에서 확인 가능
git config —global core.editor “code —wait”
git config —global - e //하면 비스코에서 확인 가능 + 터미널의 다른 거 실행되지않고 터미널이 기다리고 있다
git config global user.name “ony540” //사용자 이름 설정
git config —global user.email “onyy540@gmail.com” // 사용자 메일 설정
git config user.name
git config user.email 로 확인할 수있다
+ OS에 따른 설정
git config —global core.autocrlf input //맥사용자
git config —global core.autocrlf true //윈도우,리눅스 사용자
운영체제마다 에디터에서 새로운 줄바꿈할때 들어가는 문자열 다름
윈도우는 \r\n 사용 ( carriage-return / line-feed
맥에서는 \n 사용
깃 히스토리나 블레임보는데 오류 생길수 있어서 설정하는 것!
Git 명령어의 구조
기본적인 깃 명령어의 구조 ( git command option )
ex) git config -e
git add *.txt
터미널에서 깃 시작학기
cd projects // 폴더안에 들어가기
mkdir git // 깃이라는 디렉토리 만들기
cd git
ls -al //안에 들어있는 것 확인
git init // 깃초기화 -깃추가
ls -al // .git 숨겨진 폴더 확인가능 앞에 .이있으면 숨겨져있다는 것을 의미한다
기본적인 터미널 명령어 & 깃 초기화
open .git // 깃폴더가 열린다
초기화하면 기본적으로 마스터 브랜치가 생긴것을 확인 가능
rm -rf .git // 깃을 제거하기
ls -al// 더이상 깃프로젝트가 아님
git status // 깃 상태확인
git config --global alias.st(단축기) status(기존 명령어)
git st // git status와 동일한 기능 실행된
git config -- // 하면 명령어의 해당 명령어의 옵션을 확인할 수 있다.
깃 제거, 상태확인, 단축어 설정, 명령어 옵션확인
workflow
세가지의 작업 환경
working directiory
프로젝트 파일을 수정하는 파일이 있는
-untracked / 처음만들거나 깃을 초기화한 파일
-tracked / 이미 트래킹하고 있는 파일 (unmodified 수정되지않음 / modified 수정됨 >> 얘만 스테이징 에리아로 이동가능 )
staging area
버전히스토리에 저장할 준비가 되어있는 파일을 옮겨두는
-> commit 명령어를 사용해서 디렉토리로 보냄
.git directory
버전의 히스토리를 가지고 있는
디렉토리에서 >checkout 워킹으로 이동가능 (로컬 피씨에 저장되는 것)
-> push 명령어로 리모트 깃허브에 이동시킴
-> 다시 가져올땐 pull
++커밋
터미널에서 기본적 파일생성, git add,rm a.txt , .gitignore
echo hello world > a.txt
hello world가 a.txt에 들어가서 파일 생성
x터미널 단축키 방향 위화살표 하면 위의 명령어 복사
git add *.txt 모든 txt 파일 커밋 준비됨
echo ony >> a.txt 파일에 ony 추가됨
상태확인하면 ) modified : a.txt 확인가능
git add * // 안에있는 전부 스테이징 에리아로 이동
rm a.txt // 해당파일 삭제
삭제후 나머지를 add 하면
deleted : a.txt 확인가능
git add . //모든 파일을 포함해서 스테이징에리아에 추가됨
깃 허브에 올리고 싶지않은 파일이 있다면
echo *.log > .gitignore
모든 .log 파일을 보이지않는 .gitignore에 넣기
git diff, cat file
커맨드 k 터미널이 깨끗해짐
git status -s // 정보 짧게 볼 수 있는 방법
git diff
diff - a/ (이전버전을 의미) 스테이징에리아에 변경된 버전이 있다면
현재 수정된 b/ 안의 파일을 비교
어떻게 변경하면 좋은지 알려줌
@@ -1 +1,2 @@
( -) 이전파일을 의미함 1번째 줄을 보고
변경된 사항(+)은 1에서 2줄까지 확인해
+ 다음에 변경된 내용이 나옴 삭제가 되었다면 마이너스로 나옴
q 눌러서 다시 나오기
cat c.txt //안에 내용 확인 가능
git commit
git diff --staged // 이때까지의 흐름 확인 가능
git diff --cached
git config --global -e // config 수정가능
git commit // 옵션 하면 기본적 템플릿이 나옴
보통 타이틀 작성
상세설명 작정한다 저장하고 파일 닫으면
마스터 브랜치의 해시코드] 타이틀
다른 정보들 확인 가능
git log // 히스토리 확인가능
커밋 전체 해시코드 누가 언제 누가했는지 타이틀과 설명 확인 가능
git commit -m "second commit" // -m메세지 “안에 넣을 메세지”
하고 로그확인하면 두번째 커밋 확인 가능
git commit -am //스테이징이랑 워킹 디랙토리모든 파일을 메세지와 함께 커밋한다 ! !
어떤 규모의 커밋이 적당할까?
히스토리의 창고를 한번에 많이 넣는게 아니라
작은 단위로 커밋을 하는 것이 의미있다.
의미있는 단위와 이름으로 !
ex) 프로젝트 포기화 커밋
로그인서비스 모듈
유저 리포리지토리 모듈
보통 커밋은 동사원형으로 사용 add fix 등
그 커밋메세지의 네임밍에 맞는 코드만 넣기 !
소스트리