SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
제로부터
시작하는
Git
Neuromancerr
Mario Cho(조만석)
hephaex@gmail.com
Mario Cho
Development Experience
◆ Image Recognition using Neural Network
◆ Bio-Medical Data Processing
◆ Human Brain Mapping on High Performance
Computing
◆ Medical Image Reconstruction
(Computer Tomography)
◆ Enterprise System
◆ Open Source Software Developer
◆ OPNFV (NFV&SDN) & OpenStack
◆ Machine Learning (TensorFlow, Torch, Leaf)
Cognitive Artificial Intelligence for Medicine
◆ Machine Learning
◆ Medical Informatics of oncology
Book
◆ Unix V6 Kernel
Mario Cho
hephaex@gmail.com
Contents
Git 이란?
왜 Git을 ?
Github 계정을 만들어보자!
Git 실습
Basic
Git 이해하기
Git 실습
Advanced
OpenSoruce
활동
K&R (Ken Tompson & Dennis Richie)
Lions Commentary on UNIX V6
Open Source OS From Unix V6 To Linux
Linux
Unix V6
리눅스 커널
운영체계
- Apple Mac OS system 1.x : 1984.x
- MS Windows 1.x : 1985.x
- Linux : 1991. 8.26
• unix is an operating system
– There are many different types of unix.
– But they all came from a common background.
• The Internet was built on UNIX.
– TCP/IP is a native UNIX protocol.
– Today 80% of the worlds Internet Web servers are using Linux.
• unix has commonly been used for the past 30 years.
– It was created in 1969 - long before Microsoft existed.
– It was the 1st worldwide commercial operating system.
• Unix has always commonly been used on mainframes.
• Today as “linux” it is also commonly being used on PC’s as servers & desktops
공개 SW 포털 (http://www.oss.kr)
오픈 소스 저장소: https://github.com
Git 이란
• git == 무엇이 바뀌었는지를 기록하는 도구
파일 이름으로 버전 관리
• 파일 이름으로 Ctrl+C, Ctrl+V
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_04.doc
과제 1_진짜최종_final_2017_07_05.doc
파일 이름으로 버전 관리
• 파일 이름으로 Ctrl+C, Ctrl+V
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_05.doc
과제 1_진짜최종_final_2017_07_05.doc
1.과 2.는 무엇을
바뀌었는지 파일
이름만 가지고는
알기 어렵다!
내용이 바뀔때마다
용량은 x2 + diff.
x3 + diff.
형상관리 (svn, git) 버전 관리
• SVN , git 등 형상관리 도구로 관리
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_05.doc
과제 1_진짜최종_final_2017_07_05.doc
1.과 2.는 무엇을
바뀌었는지 파일
이름만 가지고는
알기 어렵다!
내용이 바뀔때마다
용량은 x2 + diff.
x3 + diff.
1.과 2.로 바뀔때
차이나는 부분과 내용(log)를 함께저장
2.과 3.로 바뀔때
차이나는 부분과 내용(log)를 함께저장
형상관리 (svn, git) 버전 관리
• SVN , git 등 형상관리 도구로 관리
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_05.doc
과제 1_진짜최종_final_2017_07_05.doc
1.과 2.는 무엇을
바뀌었는지 파일
이름만 가지고는
알기 어렵다!
내용이 바뀔때마다
용량은 x2 + diff.
x3 + diff.
1.과 2.로 바뀔때
차이나는 부분과 내용(log)를 함께저장
3.에서 2.로
안전한 상태로 과거 상태로 그대로
돌려 놓을 수 있다.
형상관리 (svn, git) 버전 관리
• SVN , git 등 형상관리 도구로 관리
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_05.doc
과제 1_진짜최종_final_2017_07_05.doc
1.과 2.는 무엇을
바뀌었는지 파일
이름만 가지고는
알기 어렵다!
내용이 바뀔때마다
용량은 x2 + diff.
x3 + diff.
1.과 2.로 바뀔때
차이나는 부분과 내용(log)를 함께저장
3.에서 2.로
안전한 상태로 과거 상태로 그대로
돌려 놓을 수 있다.
특정 시점(release) 시점으로 tag로 해서
관리할 수 있다.
형상관리 (svn, git) 버전 관리
• SVN , git 등 형상관리 도구로 관리
과제 1_최종_2017_07_03.doc
과제 1_진짜최종_2017_07_05.doc
과제 1_진짜최종_final_2017_07_05.doc
특정 시점(release) 시점으로 tag로 해서
관리할 수 있다.
Git을 꼭!!!
배워야하나?
Code 한줄이라도!
Git이 좋다고 하는데!
과제라 꼭 해야만…
github 실습
1. Git 환경
-> 가상화 환경으로 리눅스 설치
2. Github 회원 가입
3. git 실습 (basic)
-> https://www.github.com
-> 리눅스 터미널 환경(cli) 실습
I. Setup Virtual Environment
• Virtual Box 5.1 Download & install.
• https://www.virtualbox.org
I. Setup Virtual Environment
• VirtualBox 5.1.22 for Windows hosts x86/amd64
• VirtualBox 5.1.22 for OS X hosts amd64
II. Operating System: download
• http://releases.ubuntu.com/
• http://releases.ubuntu.com/xenial/
II. Operating System: download
• https://launchpad.net/ubuntu/+mirror/ftp.daum.net-release
II. Operating System: virtual box setup
II. Operating System: virtual box setup
II. Operating System: virtual box setup
II. Operating System: virtual box setup
II. Operating System: virtual box setup
II. Operating System: virtual box setup
II. Operating System: virtual box setup
강의자료
• https://www.slideshare.net/hephaex
II. Operating System: virtual box setup
II. Operating System: ready to install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
II. Operating System: install
III. Setting Network
• $ sudo vi /etc/network/interfaces
– 네트워크 장치 정보를 입력하고 CTRL+X로 저장
– 왼쪽 H, 아래 J 위 k 오른쪽 L
– 맨 끝에서 a를 누르고 편집 모드로 들어가서 입력
• 입력이 끝났다면 ESC 를 누르고 :wq!
• sudo reboot
III. SSH server install
• 설치를 안했을 경우 새로 설치
• $ sudo apt-get install openssh-server
• 검증 verify
• $ sudo service ssh status
III. install local terminal
• http://www.putty.org 에 접속해서
III. install local terminal
• http://www.putty.org 에 접속해서
III. install local terminal
III. install local terminal
III. install local terminal
III. Open local terminal using putty or term
• Windows 환경: putty 를 설치하고, 창을 열어 192.168.56.10 으로 접속합니다.
• OSX 환경: 터미널을 열어 $ ssh 192.168.56.10 –l ubuntu 로 접속합니다.
III. Repository update
• $ sudo apt-get update && sudo apt-get dist-upgrade
IV. Install git
• $ apt-get install git
• $ wget -qO- https://get.docker.com/ | sh
• $ sudo usermod -aG docker ubuntu
• 로그 아웃한 뒤 재 접속.
github 실습
1. Git 환경
-> 가상화 환경으로 리눅스 설치
2. Github 회원 가입
3. git 실습 (basic)
-> https://www.github.com
-> 리눅스 터미널 환경(cli) 실습
git 실습: github 회원가입
git 실습: github 회원가입
git 실습: github 회원가입
• 웹브라우저를 열고 (익스플로러, 크롬, 파이어폭스, 사파리등)
• https://github.com 에 접속
git 실습: github 회원가입
• Sign up 을 클릭
• Step1:사용자이름, 이메일, 접속 암호를 입력후 create an
account
git 실습: github 회원가입
• Step2: Choose your plan
• Unlimited public repositories for free 선택후 Continue
git 실습: github 회원가입
• Step3: Tailor your experience
• Submit 하거나 skip this step
git 실습: github 회원가입
• Final step: 이메일 확인
• Verify email address 클릭하거나 링크를 붙여 놓고, 열기
git 실습: github 회원가입
• 이제부터 나도 Github 회원!
git 실습: github 회원가입
• github에 새로운 저장소도 만들 수 있지!
github 실습
1. Git 환경
-> 가상화 환경으로 리눅스 설치
2. Github 회원 가입
3. git 실습 (basic)
-> https://www.github.com
-> 리눅스 터미널 환경(cli) 실습
git 실습:
• https://docs.google.com/spreadsheets/d/1gU9WgFIb5LxTVrF
XWi4gPdsEI-uXHy4jvYhW7JXaGDI/edit?usp=sharing
Git 실습: 기본 명령어
# git add report_card.pdf
# git config –global use.name “xxx”
# git commit -s
git 실습: github 계정 설정
• 1) 다른 putty 를 열어서 192.168.56.10 에 접속
• 2) 나의 github 계정, 이메일과 이름 입력
• git config --global user.email xxx@gmail.com
• git config --global user.name ”XXX”
• Git 계정에서 만들었던 저장소를 로컬로 불러서 저장하기.
• git clone https://github.com/hephaex/git-ex.git
git 실습: github 계정 설정
• 1) 다른 putty 를 열어서 192.168.56.10 에 접속
• 2) 나의 github 계정, 이메일과 이름 입력
• git config --global user.email xxx@gmail.com
• git config --global user.name ”XXX”
• Git 계정에서 만들었던 저장소를 로컬로 불러서 저장하기.
• git clone https://github.com/hephaex/git-ex.git
git 실습:
• # cd ~
• Git-ex 폴더를 만들자.
• $ mkdir git-ex
• $ cd git-ex
• 해당 폴더를 git 초기화
• $ git init
git 실습:
• 파일을 만들어 보자.
• touch git-ex1.txt
• 만들 파일을 git에 추가하자.
• $ git add git-ex1.txt
• 첫 커밋 하기
• $ git commit –m “first git commit”
git 실습:
• 파일을 만들어 보자.
• touch git-ex2.txt
• 만들 파일을 git에 추가하자.
• $ git add git-ex2.txt
• 두번째 커밋 하기
• $ git commit –m “second git commit”
git 실습:
• 파일을 수정해 보자.
• vi git-ex2.txt
• i를 누르고
• Hello world 라고 입력
• ESC 를 누르고 :wq! git-ex2.txt 로저장
• 만든 파일을 git에 추가하자.
git 실습:
• 상태를 확인한다.
• $ git status
• Ex2 와 ex3를 비교해보자.
• $ git diff
• Diff 의 차이를 확인 했으면 add 실행
• $ git add git-ex2.txt
• 바뀌 파일을 commit 한다.
• $ git commit –m “3th commit: file changed”
• 지금까지 git 를 확인 하자
• $ git log
git 실습:
• 복사한 URL을 git 원격 저장소로 등록하자.
• $ git remote add origin <….>
• 원격 저장소에 푸쉬 push 하자
• $ git push origin master
• Github.com 웹을 열어 확인하자 <step4>
git 실습:
• 복사한 URL을 git 원격 저장소로 등록하자.
• $ git remote add origin <….>
• 원격 저장소에 푸쉬 push 하자
• $ git push origin master
• Github.com 웹을 열어 확인하자 <step4>
Thanks you!
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
git, git flow
git, git flowgit, git flow
git, git floweva
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case studyWoo Jin Kim
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용환민 홍
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육승엽 신
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1sangyun han
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식Matthew (정재화)
 
Git 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitGit 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitSeongSik Kim
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)승용 윤
 
제로부터시작하는오픈소스
제로부터시작하는오픈소스제로부터시작하는오픈소스
제로부터시작하는오픈소스Mario Cho
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴은아 정
 

Was ist angesagt? (20)

[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
git, git flow
git, git flowgit, git flow
git, git flow
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case study
 
Github 사용법
Github 사용법Github 사용법
Github 사용법
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용
 
Git 강별
Git   강별Git   강별
Git 강별
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식
 
Git 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitGit 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with git
 
git-basic-commands
git-basic-commandsgit-basic-commands
git-basic-commands
 
11. git basic
11. git basic11. git basic
11. git basic
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 
Git tutorials
Git tutorialsGit tutorials
Git tutorials
 
제로부터시작하는오픈소스
제로부터시작하는오픈소스제로부터시작하는오픈소스
제로부터시작하는오픈소스
 
Advanced git
Advanced gitAdvanced git
Advanced git
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 

Ähnlich wie 제로부터시작하는Git

리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기Wooyoung Ko
 
Git basic2 chaos
Git basic2 chaosGit basic2 chaos
Git basic2 chaosYunkyu Choi
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851Hyeok Oh
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기영우 김
 
Yobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festYobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festinsanehong Kim
 
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on labNAVER D2
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
깃허브 시작하기
깃허브 시작하기깃허브 시작하기
깃허브 시작하기진태 이
 
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)Yoonsoo Kim
 
201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의Joohyun Han
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
git 간단한 사용방법
git 간단한 사용방법git 간단한 사용방법
git 간단한 사용방법Oh Dongju
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬Joohyun Han
 

Ähnlich wie 제로부터시작하는Git (20)

리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기
 
Git basic2 chaos
Git basic2 chaosGit basic2 chaos
Git basic2 chaos
 
Git lecture1
Git lecture1Git lecture1
Git lecture1
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기
 
Yobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festYobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2fest
 
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab
 
Fun git hub
Fun git hubFun git hub
Fun git hub
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
깃허브 시작하기
깃허브 시작하기깃허브 시작하기
깃허브 시작하기
 
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
 
201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
git 간단한 사용방법
git 간단한 사용방법git 간단한 사용방법
git 간단한 사용방법
 
Why use git
Why use gitWhy use git
Why use git
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Git 코드랩 스터디 1
Git 코드랩 스터디 1Git 코드랩 스터디 1
Git 코드랩 스터디 1
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
 

Mehr von Mario Cho

Python pyenv virtualenv
Python pyenv virtualenvPython pyenv virtualenv
Python pyenv virtualenvMario Cho
 
Open source ai_technical_trend
Open source ai_technical_trendOpen source ai_technical_trend
Open source ai_technical_trendMario Cho
 
A.I. Exercise.
A.I. Exercise.A.I. Exercise.
A.I. Exercise.Mario Cho
 
오픈소스로 시작하는 인공지능 실습
오픈소스로 시작하는 인공지능 실습오픈소스로 시작하는 인공지능 실습
오픈소스로 시작하는 인공지능 실습Mario Cho
 
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Mario Cho
 
Deep machine learning by Mario Cho
Deep machine learning by Mario ChoDeep machine learning by Mario Cho
Deep machine learning by Mario ChoMario Cho
 
Introduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsIntroduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsMario Cho
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Mario Cho
 
Koss 6 a17_deepmachinelearning_mariocho_r10
Koss 6 a17_deepmachinelearning_mariocho_r10Koss 6 a17_deepmachinelearning_mariocho_r10
Koss 6 a17_deepmachinelearning_mariocho_r10Mario Cho
 
Open stack 4day
Open stack 4dayOpen stack 4day
Open stack 4dayMario Cho
 
티벳 사자의 서: 환생론/우주관
티벳 사자의 서: 환생론/우주관티벳 사자의 서: 환생론/우주관
티벳 사자의 서: 환생론/우주관Mario Cho
 
EMT machine learning 12th weeks : Anomaly detection
EMT machine learning 12th weeks : Anomaly detectionEMT machine learning 12th weeks : Anomaly detection
EMT machine learning 12th weeks : Anomaly detectionMario Cho
 
ESM Machine learning 5주차 Review by Mario Cho
ESM Machine learning 5주차 Review by Mario ChoESM Machine learning 5주차 Review by Mario Cho
ESM Machine learning 5주차 Review by Mario ChoMario Cho
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term ReviewMario Cho
 
ESM SVM & Unsupervised Learning
ESM SVM & Unsupervised LearningESM SVM & Unsupervised Learning
ESM SVM & Unsupervised LearningMario Cho
 
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoTfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoMario Cho
 
Koss 1605 machine_learning_mariocho_t10
Koss 1605 machine_learning_mariocho_t10Koss 1605 machine_learning_mariocho_t10
Koss 1605 machine_learning_mariocho_t10Mario Cho
 
Storage based on_openstack_mariocho
Storage based on_openstack_mariochoStorage based on_openstack_mariocho
Storage based on_openstack_mariochoMario Cho
 
An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)Mario Cho
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 

Mehr von Mario Cho (20)

Python pyenv virtualenv
Python pyenv virtualenvPython pyenv virtualenv
Python pyenv virtualenv
 
Open source ai_technical_trend
Open source ai_technical_trendOpen source ai_technical_trend
Open source ai_technical_trend
 
A.I. Exercise.
A.I. Exercise.A.I. Exercise.
A.I. Exercise.
 
오픈소스로 시작하는 인공지능 실습
오픈소스로 시작하는 인공지능 실습오픈소스로 시작하는 인공지능 실습
오픈소스로 시작하는 인공지능 실습
 
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
 
Deep machine learning by Mario Cho
Deep machine learning by Mario ChoDeep machine learning by Mario Cho
Deep machine learning by Mario Cho
 
Introduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. ApplicationsIntroduce Deep learning & A.I. Applications
Introduce Deep learning & A.I. Applications
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우
 
Koss 6 a17_deepmachinelearning_mariocho_r10
Koss 6 a17_deepmachinelearning_mariocho_r10Koss 6 a17_deepmachinelearning_mariocho_r10
Koss 6 a17_deepmachinelearning_mariocho_r10
 
Open stack 4day
Open stack 4dayOpen stack 4day
Open stack 4day
 
티벳 사자의 서: 환생론/우주관
티벳 사자의 서: 환생론/우주관티벳 사자의 서: 환생론/우주관
티벳 사자의 서: 환생론/우주관
 
EMT machine learning 12th weeks : Anomaly detection
EMT machine learning 12th weeks : Anomaly detectionEMT machine learning 12th weeks : Anomaly detection
EMT machine learning 12th weeks : Anomaly detection
 
ESM Machine learning 5주차 Review by Mario Cho
ESM Machine learning 5주차 Review by Mario ChoESM Machine learning 5주차 Review by Mario Cho
ESM Machine learning 5주차 Review by Mario Cho
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term Review
 
ESM SVM & Unsupervised Learning
ESM SVM & Unsupervised LearningESM SVM & Unsupervised Learning
ESM SVM & Unsupervised Learning
 
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoTfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
 
Koss 1605 machine_learning_mariocho_t10
Koss 1605 machine_learning_mariocho_t10Koss 1605 machine_learning_mariocho_t10
Koss 1605 machine_learning_mariocho_t10
 
Storage based on_openstack_mariocho
Storage based on_openstack_mariochoStorage based on_openstack_mariocho
Storage based on_openstack_mariocho
 
An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 

제로부터시작하는Git

  • 2. Mario Cho Development Experience ◆ Image Recognition using Neural Network ◆ Bio-Medical Data Processing ◆ Human Brain Mapping on High Performance Computing ◆ Medical Image Reconstruction (Computer Tomography) ◆ Enterprise System ◆ Open Source Software Developer ◆ OPNFV (NFV&SDN) & OpenStack ◆ Machine Learning (TensorFlow, Torch, Leaf) Cognitive Artificial Intelligence for Medicine ◆ Machine Learning ◆ Medical Informatics of oncology Book ◆ Unix V6 Kernel Mario Cho hephaex@gmail.com
  • 3. Contents Git 이란? 왜 Git을 ? Github 계정을 만들어보자! Git 실습 Basic Git 이해하기 Git 실습 Advanced OpenSoruce 활동
  • 4. K&R (Ken Tompson & Dennis Richie)
  • 6. Open Source OS From Unix V6 To Linux Linux Unix V6
  • 7. 리눅스 커널 운영체계 - Apple Mac OS system 1.x : 1984.x - MS Windows 1.x : 1985.x - Linux : 1991. 8.26
  • 8. • unix is an operating system – There are many different types of unix. – But they all came from a common background. • The Internet was built on UNIX. – TCP/IP is a native UNIX protocol. – Today 80% of the worlds Internet Web servers are using Linux. • unix has commonly been used for the past 30 years. – It was created in 1969 - long before Microsoft existed. – It was the 1st worldwide commercial operating system. • Unix has always commonly been used on mainframes. • Today as “linux” it is also commonly being used on PC’s as servers & desktops
  • 9. 공개 SW 포털 (http://www.oss.kr)
  • 10. 오픈 소스 저장소: https://github.com
  • 11. Git 이란 • git == 무엇이 바뀌었는지를 기록하는 도구
  • 12. 파일 이름으로 버전 관리 • 파일 이름으로 Ctrl+C, Ctrl+V 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_04.doc 과제 1_진짜최종_final_2017_07_05.doc
  • 13. 파일 이름으로 버전 관리 • 파일 이름으로 Ctrl+C, Ctrl+V 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_05.doc 과제 1_진짜최종_final_2017_07_05.doc 1.과 2.는 무엇을 바뀌었는지 파일 이름만 가지고는 알기 어렵다! 내용이 바뀔때마다 용량은 x2 + diff. x3 + diff.
  • 14. 형상관리 (svn, git) 버전 관리 • SVN , git 등 형상관리 도구로 관리 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_05.doc 과제 1_진짜최종_final_2017_07_05.doc 1.과 2.는 무엇을 바뀌었는지 파일 이름만 가지고는 알기 어렵다! 내용이 바뀔때마다 용량은 x2 + diff. x3 + diff. 1.과 2.로 바뀔때 차이나는 부분과 내용(log)를 함께저장 2.과 3.로 바뀔때 차이나는 부분과 내용(log)를 함께저장
  • 15. 형상관리 (svn, git) 버전 관리 • SVN , git 등 형상관리 도구로 관리 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_05.doc 과제 1_진짜최종_final_2017_07_05.doc 1.과 2.는 무엇을 바뀌었는지 파일 이름만 가지고는 알기 어렵다! 내용이 바뀔때마다 용량은 x2 + diff. x3 + diff. 1.과 2.로 바뀔때 차이나는 부분과 내용(log)를 함께저장 3.에서 2.로 안전한 상태로 과거 상태로 그대로 돌려 놓을 수 있다.
  • 16. 형상관리 (svn, git) 버전 관리 • SVN , git 등 형상관리 도구로 관리 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_05.doc 과제 1_진짜최종_final_2017_07_05.doc 1.과 2.는 무엇을 바뀌었는지 파일 이름만 가지고는 알기 어렵다! 내용이 바뀔때마다 용량은 x2 + diff. x3 + diff. 1.과 2.로 바뀔때 차이나는 부분과 내용(log)를 함께저장 3.에서 2.로 안전한 상태로 과거 상태로 그대로 돌려 놓을 수 있다. 특정 시점(release) 시점으로 tag로 해서 관리할 수 있다.
  • 17. 형상관리 (svn, git) 버전 관리 • SVN , git 등 형상관리 도구로 관리 과제 1_최종_2017_07_03.doc 과제 1_진짜최종_2017_07_05.doc 과제 1_진짜최종_final_2017_07_05.doc 특정 시점(release) 시점으로 tag로 해서 관리할 수 있다. Git을 꼭!!! 배워야하나? Code 한줄이라도! Git이 좋다고 하는데! 과제라 꼭 해야만…
  • 18. github 실습 1. Git 환경 -> 가상화 환경으로 리눅스 설치 2. Github 회원 가입 3. git 실습 (basic) -> https://www.github.com -> 리눅스 터미널 환경(cli) 실습
  • 19. I. Setup Virtual Environment • Virtual Box 5.1 Download & install. • https://www.virtualbox.org
  • 20. I. Setup Virtual Environment • VirtualBox 5.1.22 for Windows hosts x86/amd64 • VirtualBox 5.1.22 for OS X hosts amd64
  • 21. II. Operating System: download • http://releases.ubuntu.com/ • http://releases.ubuntu.com/xenial/
  • 22. II. Operating System: download • https://launchpad.net/ubuntu/+mirror/ftp.daum.net-release
  • 23. II. Operating System: virtual box setup
  • 24. II. Operating System: virtual box setup
  • 25. II. Operating System: virtual box setup
  • 26. II. Operating System: virtual box setup
  • 27. II. Operating System: virtual box setup
  • 28. II. Operating System: virtual box setup
  • 29. II. Operating System: virtual box setup
  • 31. II. Operating System: virtual box setup
  • 32. II. Operating System: ready to install
  • 36.
  • 53.
  • 57. III. Setting Network • $ sudo vi /etc/network/interfaces – 네트워크 장치 정보를 입력하고 CTRL+X로 저장 – 왼쪽 H, 아래 J 위 k 오른쪽 L – 맨 끝에서 a를 누르고 편집 모드로 들어가서 입력 • 입력이 끝났다면 ESC 를 누르고 :wq! • sudo reboot
  • 58. III. SSH server install • 설치를 안했을 경우 새로 설치 • $ sudo apt-get install openssh-server • 검증 verify • $ sudo service ssh status
  • 59. III. install local terminal • http://www.putty.org 에 접속해서
  • 60. III. install local terminal • http://www.putty.org 에 접속해서
  • 61. III. install local terminal
  • 62. III. install local terminal
  • 63. III. install local terminal
  • 64. III. Open local terminal using putty or term • Windows 환경: putty 를 설치하고, 창을 열어 192.168.56.10 으로 접속합니다. • OSX 환경: 터미널을 열어 $ ssh 192.168.56.10 –l ubuntu 로 접속합니다.
  • 65. III. Repository update • $ sudo apt-get update && sudo apt-get dist-upgrade
  • 66. IV. Install git • $ apt-get install git • $ wget -qO- https://get.docker.com/ | sh • $ sudo usermod -aG docker ubuntu • 로그 아웃한 뒤 재 접속.
  • 67. github 실습 1. Git 환경 -> 가상화 환경으로 리눅스 설치 2. Github 회원 가입 3. git 실습 (basic) -> https://www.github.com -> 리눅스 터미널 환경(cli) 실습
  • 68. git 실습: github 회원가입
  • 69. git 실습: github 회원가입
  • 70. git 실습: github 회원가입 • 웹브라우저를 열고 (익스플로러, 크롬, 파이어폭스, 사파리등) • https://github.com 에 접속
  • 71. git 실습: github 회원가입 • Sign up 을 클릭 • Step1:사용자이름, 이메일, 접속 암호를 입력후 create an account
  • 72. git 실습: github 회원가입 • Step2: Choose your plan • Unlimited public repositories for free 선택후 Continue
  • 73. git 실습: github 회원가입 • Step3: Tailor your experience • Submit 하거나 skip this step
  • 74. git 실습: github 회원가입 • Final step: 이메일 확인 • Verify email address 클릭하거나 링크를 붙여 놓고, 열기
  • 75. git 실습: github 회원가입 • 이제부터 나도 Github 회원!
  • 76. git 실습: github 회원가입 • github에 새로운 저장소도 만들 수 있지!
  • 77. github 실습 1. Git 환경 -> 가상화 환경으로 리눅스 설치 2. Github 회원 가입 3. git 실습 (basic) -> https://www.github.com -> 리눅스 터미널 환경(cli) 실습
  • 79. Git 실습: 기본 명령어 # git add report_card.pdf # git config –global use.name “xxx” # git commit -s
  • 80. git 실습: github 계정 설정 • 1) 다른 putty 를 열어서 192.168.56.10 에 접속 • 2) 나의 github 계정, 이메일과 이름 입력 • git config --global user.email xxx@gmail.com • git config --global user.name ”XXX” • Git 계정에서 만들었던 저장소를 로컬로 불러서 저장하기. • git clone https://github.com/hephaex/git-ex.git
  • 81. git 실습: github 계정 설정 • 1) 다른 putty 를 열어서 192.168.56.10 에 접속 • 2) 나의 github 계정, 이메일과 이름 입력 • git config --global user.email xxx@gmail.com • git config --global user.name ”XXX” • Git 계정에서 만들었던 저장소를 로컬로 불러서 저장하기. • git clone https://github.com/hephaex/git-ex.git
  • 82. git 실습: • # cd ~ • Git-ex 폴더를 만들자. • $ mkdir git-ex • $ cd git-ex • 해당 폴더를 git 초기화 • $ git init
  • 83. git 실습: • 파일을 만들어 보자. • touch git-ex1.txt • 만들 파일을 git에 추가하자. • $ git add git-ex1.txt • 첫 커밋 하기 • $ git commit –m “first git commit”
  • 84. git 실습: • 파일을 만들어 보자. • touch git-ex2.txt • 만들 파일을 git에 추가하자. • $ git add git-ex2.txt • 두번째 커밋 하기 • $ git commit –m “second git commit”
  • 85. git 실습: • 파일을 수정해 보자. • vi git-ex2.txt • i를 누르고 • Hello world 라고 입력 • ESC 를 누르고 :wq! git-ex2.txt 로저장 • 만든 파일을 git에 추가하자.
  • 86. git 실습: • 상태를 확인한다. • $ git status • Ex2 와 ex3를 비교해보자. • $ git diff • Diff 의 차이를 확인 했으면 add 실행 • $ git add git-ex2.txt • 바뀌 파일을 commit 한다. • $ git commit –m “3th commit: file changed” • 지금까지 git 를 확인 하자 • $ git log
  • 87. git 실습: • 복사한 URL을 git 원격 저장소로 등록하자. • $ git remote add origin <….> • 원격 저장소에 푸쉬 push 하자 • $ git push origin master • Github.com 웹을 열어 확인하자 <step4>
  • 88. git 실습: • 복사한 URL을 git 원격 저장소로 등록하자. • $ git remote add origin <….> • 원격 저장소에 푸쉬 push 하자 • $ git push origin master • Github.com 웹을 열어 확인하자 <step4>