[2023-OSSCA] git/GitHub 기본 교육 (수정중)

너스레:)·2023년 7월 30일
0

git/GitHub

목록 보기
1/1
post-thumbnail
  • 리눅스 커맨드라인 기초
    : Git 사용에 필요한 기초 커맨드 라인
  • Git
    : 버전 관리 시스템
  • GitHub
    : 코드 공유 & 헙업을 위한 플랫폼

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 ; 환경설정
구글링 해서 초기 설정

———————————————

1. 리눅스 커맨드 라인 기초

pwd, cd, ls

  • pwd : print working directory (내가 작성할 명령어의 적용 디렉토리)
주의 : 리눅스 => /, 윈도우 => \
  • bash 껐다 키면 항상 ‘기본 경로’부터 열림
  • ls : list (현재 작업 디렉토리의 파일 & 폴더 목록 볼 수 있음)
    • 만약 ‘자세히’로 보고 싶다면 -l 옵션을 추가할 것
    • -a 옵션 => 숨김 파일/폴더들까지 다 볼 수 있음 (파일명이 “.”으로 시작하면 ‘숨김’ 파일/폴더 라고 생각하면 됨)
    • ‘숨긴 항목’까지 다 보이도록 설정하는 게 좋음
    • 웬만하면 ls -al 로 해서, 자세히 + 숨김 항목까지 다 볼 것
  • 리눅스 명령어 기본서 1권 함 보는 걸 추천
  • cd : change directory

자동완성 => 탭 (휴먼 에러를 줄이는 기능) ; 경로 유추

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 팁 ]

———————————————

2. Git ; 왜 git을 사용하나 ]

추천 자료 : The Missing Semester of Your CS Education (MIT)
- https://missing-semester-kr.github.io/

git => 소스 공유를 위한 사실상의 표준 (de facto standard)

지옥에서 온 정보 관리 기술, git (리누스 토르발스, 리눅스 커널 & 깃의 창시자)

특정 기술을 도입하거나 배워야 할 때는 “왜” 이 기술을 사용하고 배워야 하는지 꼭 짚어볼 것!!!!

버전 관리를 사용하는 이유?

  • 실행 취소, 재실행이 가능함 (<— 가장 큰 이유)
  • 버전 간 소스코드 비교가 가능함
  • 협업이 쉬워짐

깃: 버전관리를 위한 기술
깃을 사용한 상용 서비스 (for 수익화)

  • GitHub, GitLab, CodeCommit, Bitbucket(Jira) 등 
(회사 이름 쓸 떄는 철자, 대/소문자까지 정확하게 쓸 것.. for 전문성)

학습 순서
① 이미 존재하는 소스코드를 사용해 커밋 이력 탐색하기
② 직접 소스코드를 수정하면서 버전 관리 사용하기
③ 오픈소스 기여를 통해 GitHub를 사용한 협업 맛보기

———————————————

[ 버전 관리의 중요성 ]

눈으로 코드의 변경사항을 찾기란 너무 번거롭고 힘듦 (특히 큰 파일을 다룰 때)
diff (파일1) (파일2)

———————————————

[ 다양한 버전 관리 시스템 & 커밋 ]

다양한 버전 관리 시스템
그 중 Git : 높은 에디터 자유도, 오프라인 사용, ‘분산’ 버전관리 시스템

소스 코드를 언제 저장해야하나
자동 저장? => 유효하지 않은 코드도 자동으로 저장할 위험 有
따라서 ‘사람이 의도를 가지고 저장할 때’ 저장되어야 함 => “커밋”(저장)

커밋 1개 == 독립적인 버전 1개
커밋 == 사진 찍기 => 시점들 간의 비교가 가능해짐
커밋 메세지 (커밋마다 설명이 담긴 message)

얼마나 자주 커밋을 만들어야 할까

  • (필수) ‘논리적 변경’이 있을 때 만든다
  • 커밋 크기가 작을수록 좋다 ; 잘 분리해서 커밋했다면 장애가 난 부분만 rollback 할 수 있어서 좋음 ; 팀바팀이니까 조직 분위기 보고 결정

커밋 사이즈에 관한 퀴즈
변경 내용 작음 적당함 큼
약 일주일 걸려 구현한 신 기능을 담은 커밋 V
README 파일에 3개의 오타를 발견했는데, 그 중 하나를 고치고 만든 커밋 V
한 시간 정도 들여 구현한 신 기능을 담은 커밋 V
두 개의 함수에서 각각 버그를 발견하여 한꺼번에 고친 후 만든 커밋 V

PR의 크기도 중요하다
n분 이내에 리뷰가 불가능한 크기의 (커밋) PR이면 너무 크다라고 판단한다
PR 리뷰 (코드 리뷰) 할 때, 리뷰어가 ‘커밋 크기가 너무 크다, 이거 쪼개달라’라는 요구를 하기도 함

———————————————

[ 저장소 클론 받고 로그 살펴보기 ]

리포지토리(repository) ; 리포

  • 여러 파일을 하나로 모은 컬렉션
  • 프로젝트 1개에 여러 리포지토리가 있을 수 있음

모노리포, lerna ; 작은 프로젝트는 프로젝트 하나 당 리포지토리 하나를 두는 경우도 많음

리포지토리 클론(clone) 받기
code . => vscode로 열겠다
vscode extension으로 git graph(강추), gitlens 추천함
git log, gitk 명령어와 동일한 결과 출력

——————————————— (끝!)

profile
💻 (CSE) Computer Science and Engineering

0개의 댓글