Post

데브코스 TIL - Day 2

23년 11월 15일 강의를 들은 내용과 추가로 더 학습한 내용을 기록한 글입니다.

버전 관리 시스템의 종류

1. 로컬 버전 관리 시스템

  • 단순하게 내 컴퓨터 안에서만 버전 관리를 하는 방식
  • 내 컴퓨터 안에만 버전을 관리하기 때문에 협업할 수 없음

2. 중앙 집중식 관리 시스템

  • 클라이언트 서버 방식이라고도 함
  • 중엉 시스템(서버)에 저장되어 관리하는 방식
  • 변경할 파일을 하나만 가져와 작업하는 방식
  • 여러명이 같은 파일을 수정했을 경우 변경된 내용을 확인하기 위해 파일을 하나하나 확인해야하기 때문에 비효율적임
  • 대표적인 도구: CVS, SVN

3. 분산 관리 시스템

  • 로컬 저장소와, 원격 저장소로 분리되어 관리하는 방식
  • 필요한 버전의 폴더(프로젝트)를 가져와 작업하기 때문에 편리하고, 안정적임
  • 대표적인 도구: Git, Mecurial, Bazaar

분산형 버전 관리 시스템 Git

컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율할 때 사용하는 분산 관리 시스템의 가장 대표적인 도구

Git이란?

  • 내 컴퓨터에서 버전을 관리해주는 시스템이자, 깃허브와 소통할 수 있게 해주는 시스템
  • 내 컴퓨터에서 변경한 버전을 서버에 동기화 시킬 수 있으며, 서버에 있는 버전을 내 컴퓨터로 받아올 수도 있음

Github란?

  • Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트(서버)
  • GitHub를 이용하면 시간, 공간의 제약없이 협업할 수 있음
  • 내 프로젝트뿐만 아니라 GitHub에 올라와있는 다른 사람의 프로젝트를 다운로드, 복제할 수도 있고 내 프로젝트를 백업할 수도 있음

Git 공식 홈페이지 https://git-scm.com/book/ko/v2

CLI 와 GUI

GUI (Graphic User Interface)

https://upload.wikimedia.org/wikipedia/commons/a/a9/KDE_Plasma_5.16.png

  • 그래픽 환경을 기반으로 한 마우스나 키보드를 사용하여 조작하는 사용자 인터페이스
  • 그래픽으로 전달되는 그림이나 아이콘을 통해서 소통

CLI (Command Line Interface)

https://i.namu.wiki/i/jf-sHcEspud_b6NKHCwhgRLnL9qnAwPhZCbvhwDex_73zl6XYW0QaBEgdj7h7u0vZfQNIMHCnn-IUthITFpx2J0T8SC2Mt-_qNlG6QNnijks9FSjQpnNmsKx2fzROH3_gnFa4lKDIH8KCEcgEGOmNg.webp

  • 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
  • MS DOS, 명령 프롬프트(cmd), 파워셀, Bash, Terminal

자주 쓰는 명령어

  • ls: 현재 폴더 안에 존재하는 파일들의 목록을 보여주는 명령어

  • ls -a: 모든 파일(숨김 파일 포함) 목록을 보여주는 명령어

    • window powershell에서는 작동하지 않음 (Linux의 Bash shell과는 다른 명령어 체계를 가지고 있기 때문)
  • cd: 특정 폴더로 이동시켜주는 명령어

  • cd ..: 상위 폴더로 이동시켜주는 명령어

  • mkdir: 새로운 폴더를 만드는 명령어

자주 사용하는 깃 명령어

  • git --version: 현재 git의 version을 확인하는 명령어

  • git status: 현재 git의 상태를 확인하는 명령어

  • git init: git

    • .git(숨김 폴더)
This post is licensed under CC BY 4.0 by the author.