Skip to content

toreta129/oss_git_example

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

오픈소스SW개발론

Introduction

2025년도 2학기 오픈소스 소프트웨어
인공지능학부 224607 이수현


Week1-1 강의 개요 (강의계획서)

  • 교과요목

    • 오픈소스 소프트웨어 개발을 위한 기본 개념과 도구 학습
    • 애자일 개발 방법론 학습
    • 자기 주도적 학습 및 적응
  • 수업평가

    • 기말고사: 40
    • 중간고사: 30
    • 개별과제: 20
    • 출석: 10
  • 별도의 교제 없이 강의별 자료를 사전 배포


Week1-2 오픈소스소프트웨어 개요

오픈소스 소프트웨어란?

소프트웨어 저작권 소유자가 모든 사람에게 소스 코드를 게시, 사용, 복사, 수정 및 배포할 권리를 부여한 소프트웨어

Free Software vs Open Source Software

  • Free Software

    • 대표인물 - 리처드 스돌만 (Richard Stallman)

    "Free software is a matter of liberty, not price."

    • 자유와 윤리적 가치 강조
  • OpenSource Software

    • 대표인물 - 에릭 레이먼트 (Eric S. Raymond)

    "Given enough eyeballs, all bugs are shallow."

    • 실용적, 기술적 우위 및 상업화 강조

OSS License

오픈소스 소프트웨어의 사용, 복제, 수정, 배포 권한의 범위를 지정

라이선스마다 다른 권한의 범위


Week2-1 버전 관리 개요

Version Control System(VCS)

버전 관리 시스템의 목적은 파일의 변화를 시간 경과에 따라 추적하여, 언제든지 이전 작업 버전으로 쉽게 돌아갈 수 있도록 하는 것입니다.

주요 VCS 소프트웨어: CVS, SVN, Mercurial, Darcs, Git

VCS는 저장소 관리 방식에 따라 두가지로 나뉩니다.

  1. 중앙 집중식 VCS (Centralized VCS)

    • 하나의 중앙 저장소만 존재하며 여러 사용자가 접근합니다.
    • CVS, SVN
  2. 분산 VCS (Decentralized VCS)

    • 모든 사용자가 로컬 저장소를 가지며, 별도의 원격 저장소를 사용합니다.
    • GIT, Mercurial, Darcs

VCS의 Checkin(Commit), Checkout, Branching, Merging 등의 동작들은 파일의 이력을 관리하고, 여러 사람이 동시에 작업하는 것을 지원합니다.


Week2-2 Git

Git은 리누스 토르발스 (Linus Torvalds)가 리눅스 커널 개발 협업을 위해 만든 분산 버전 관리 시스템(DVCS)입니다.

  • Git의 4개 구역

    • Workspace: 사용자가 현재 파일을 작업하는 공간
    • Index: 다음 커밋에 포함할 파일을 준비하는 영역
    • Local Repository: 로컬에서 커밋된 파일들이 저장되는 곳
    • Remote Repository: 로컬 저장소에서 푸시되어 올라간 파일들이 저장되는 원격 공간
  • Git 기본 명령어

    • git clone: 원격 저장소의 내용을 로컬 저장소로 가져옵니다.
    • git add: Workspace의 변경 사항을 Index에 추가합니다.
    • git commit: Index 영역의 파일을 로컬 저장소에 기록합니다.
    • git push: 로컬 저장소의 커밋을 원격 저장소에 올립니다.
    • git fetch: 원격 저장소의 내용을 로컬 저장소로 가져옵니다.(작업 공간 병합 X)
    • git merge: fetch로 가져온 내용을 로컬 저장소에 병합합니다.
    • git pull: fetch와 merge를 한 번에 수행합니다.
    • git diff: 현재 작업 공간, Index, HEAD 사이의 차이를 비교합니다.

Git 명령어


Week2-3 Github, fork, pull request

  • Github

    Git 기반의 소스코드 호스팅 플랫폼입니다. Git 저장소를 인터넷상에 저장하고 관리하는 서비스입니다.

  • fork

    • 다른사람의 원격 저장소를 본인의 GitHub 계정으로 완전 복사
    • 원본 저장소와 독립적인 새로운 원격 저장소가 본인 계정에 생성됩니다.
    • 원본과 fork 저장소의 변경사항은 자동으로 반영되지 않습니다.
  • pull request

    • fork 저장소에서 코드 수정 후, 원본 프로젝트에 병합을 요청하는 행위입니다.
    • 원본 저장소 관리자가 코드를 검토하여, Merge하거나 코드 수정을 요청할 수 있습니다.

My Github Blog


Week2-4 Git:Advanced topics

  • git reset

커밋 이력을 특정 상태로 되돌리거나 인덱스와 작업 공간의 상태를 변경할 때 사용됩니다.
옵션으로 --soft, --mixed, --hard를 사용하여 reset할 범위를 다르게 할 수 있습니다.

  • git blame

파일의 각 라인을 누가 언제 수정했는지 추적할 수 있습니다.

  • git remote

원격 저장소를 관리하는 명령어입니다.

  • git remote add: 새로운 원격 저장소를 추가합니다.
  • git remote -v: 현재 연결된 원격 저장소의 목록과 URL을 보여줍니다.
  • git remote update: 모든 원격 저장소의 최신 정보를 한 번에 가져옵니다.

Week3 Markdown

  • 텍스트 기반의 마크업 언어로 2004년 존 그루버에 의해 만들어졌습니다.
  • 쉽게 쓰고 읽을 수 있으며 HTML로 변환이 가능합니다.
  • 마크다운 튜토리얼 사이트에서 마크다운 주요 문법(제목, 단락, 텍스트 속성, 링크...)을 사용해 볼 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%