Git bash
: ‘윈도우’에서 bash 명령어를 사용할 수 있도록 해주는 도구
cmd, powershell 대신 git bash
유닉스, 리눅스 기반 명령어를 쓰기 위해
개발자는 cli 환경을 더 좋아함. 생산성 높고, 미세한 제어에도 유용
44bits 블로그 참고
‘커맨드라인 인터페이스, 셸, 터미널’
Git bash 사용 시 주의점
Git bash 설치 방법
parkjh7764 티스토리 참고
Vim에 대한 지식 잘 알아둘 것
master와 main을 같이 쓰면 안 됨
Configuring the line ending conversations
줄바꿈 ; crlf, lf
운영체제마다 다름
git 준-공식문서
git-scm.com/book/kko/v2/시작하기-Git-최초-설정
사용자 정보 ; “실명”으로 할 것 ; blame에서 코드 주인 찾을 때 실명이어야 효율적으로 찾을 수 있음
git config —list 정보 수정도 가능
configuration ; 환경설정
구글링 해서 초기 설정
———————————————
pwd, cd, ls
자동완성 => 탭 (휴먼 에러를 줄이는 기능) ; 경로 유추
cd .. => 한 단계 상위경로로 이동
cd . => 현재 경로
cd ../../..
운영체제의 파일구조 => 트리 구조
절대경로, 상대경로
bash에서는 복사-붙여넣기 할 때, ctrl+c, ctrl+v가 안 먹힘
관련 설정은 bash > options > keys 또는 mouse 에서 커스텀할 것
(멘토님의 경우, 그냥 드래그하는 것만으로도 ‘복사’가 되고, 마우스 우클릭을 하면 ‘붙여넣기’가 되도록 설정함)
alt + backspace => 빠르게 지우기 가능
———————————————
[ VIM 기초 사용법 ]
vim으로 새로운 파일 생성 또는 기존 파일 열기
vi test3.txt
확장자까지 작성
vim으로 파일을 열었을 때는 ‘명령 모드’로 진입함.
내용을 입력하고 싶을 때는 ‘입력 모드(insert)’로 바꿔야 함
명령 모드 -> 입력 모드 전환 방법 : i 누르기
입력 모드에서는 저장/나가기 명령을 내릴 수 없음. 명령 모드로 전환해야 함
입력 모드 -> 명령 모드 전환 방법 : esc 누르기
저장(write) => :w
나가기(quit) => :q
저장 & 나가기 => :wq
vim 사용법에 익숙해지는 게 좋음 — 기본적인 엔지니어링 지식이라.. 회사 문서도 이를 안다는 전제에서 작성되어있음
———————————————
[ VIM 사용 시 많이 하는 실수 ]
임시파일 ; .swp 파일
clear
화살표 위쪽 버튼 => 바로 최근 명령어 돌아가기
history
!(명령어줄 숫자) => 해당 명령어 복구
———————————————
[ 커맨드라인 학습 방법 ]
번역 팁 : deepl
[ git bash 팁 ]
———————————————
추천 자료 : The Missing Semester of Your CS Education (MIT)
- https://missing-semester-kr.github.io/
git => 소스 공유를 위한 사실상의 표준 (de facto standard)
지옥에서 온 정보 관리 기술, git (리누스 토르발스, 리눅스 커널 & 깃의 창시자)
특정 기술을 도입하거나 배워야 할 때는 “왜” 이 기술을 사용하고 배워야 하는지 꼭 짚어볼 것!!!!
버전 관리를 사용하는 이유?
깃: 버전관리를 위한 기술
깃을 사용한 상용 서비스 (for 수익화)
학습 순서
① 이미 존재하는 소스코드를 사용해 커밋 이력 탐색하기
② 직접 소스코드를 수정하면서 버전 관리 사용하기
③ 오픈소스 기여를 통해 GitHub를 사용한 협업 맛보기
———————————————
[ 버전 관리의 중요성 ]
눈으로 코드의 변경사항을 찾기란 너무 번거롭고 힘듦 (특히 큰 파일을 다룰 때)
diff (파일1) (파일2)
———————————————
[ 다양한 버전 관리 시스템 & 커밋 ]
다양한 버전 관리 시스템
그 중 Git : 높은 에디터 자유도, 오프라인 사용, ‘분산’ 버전관리 시스템
소스 코드를 언제 저장해야하나
자동 저장? => 유효하지 않은 코드도 자동으로 저장할 위험 有
따라서 ‘사람이 의도를 가지고 저장할 때’ 저장되어야 함 => “커밋”(저장)
커밋 1개 == 독립적인 버전 1개
커밋 == 사진 찍기 => 시점들 간의 비교가 가능해짐
커밋 메세지 (커밋마다 설명이 담긴 message)
얼마나 자주 커밋을 만들어야 할까
커밋 사이즈에 관한 퀴즈
변경 내용 작음 적당함 큼
약 일주일 걸려 구현한 신 기능을 담은 커밋 V
README 파일에 3개의 오타를 발견했는데, 그 중 하나를 고치고 만든 커밋 V
한 시간 정도 들여 구현한 신 기능을 담은 커밋 V
두 개의 함수에서 각각 버그를 발견하여 한꺼번에 고친 후 만든 커밋 V
PR의 크기도 중요하다
n분 이내에 리뷰가 불가능한 크기의 (커밋) PR이면 너무 크다라고 판단한다
PR 리뷰 (코드 리뷰) 할 때, 리뷰어가 ‘커밋 크기가 너무 크다, 이거 쪼개달라’라는 요구를 하기도 함
———————————————
[ 저장소 클론 받고 로그 살펴보기 ]
리포지토리(repository) ; 리포
모노리포, lerna ; 작은 프로젝트는 프로젝트 하나 당 리포지토리 하나를 두는 경우도 많음
리포지토리 클론(clone) 받기
code . => vscode로 열겠다
vscode extension으로 git graph(강추), gitlens 추천함
git log, gitk 명령어와 동일한 결과 출력
——————————————— (끝!)