제로부터
시작하는
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

제로부터시작하는Git

  • 1.
  • 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)
  • 5.
  • 6.
    Open Source OSFrom Unix V6 To Linux Linux Unix V6
  • 7.
    리눅스 커널 운영체계 - AppleMac OS system 1.x : 1984.x - MS Windows 1.x : 1985.x - Linux : 1991. 8.26
  • 8.
    • unix isan 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 VirtualEnvironment • Virtual Box 5.1 Download & install. • https://www.virtualbox.org
  • 20.
    I. Setup VirtualEnvironment • 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
  • 30.
  • 31.
    II. Operating System:virtual box setup
  • 32.
    II. Operating System:ready to install
  • 33.
  • 34.
  • 35.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 54.
  • 55.
  • 56.
  • 57.
    III. Setting Network •$ sudo vi /etc/network/interfaces – 네트워크 장치 정보를 입력하고 CTRL+X로 저장 – 왼쪽 H, 아래 J 위 k 오른쪽 L – 맨 끝에서 a를 누르고 편집 모드로 들어가서 입력 • 입력이 끝났다면 ESC 를 누르고 :wq! • sudo reboot
  • 58.
    III. SSH serverinstall • 설치를 안했을 경우 새로 설치 • $ sudo apt-get install openssh-server • 검증 verify • $ sudo service ssh status
  • 59.
    III. install localterminal • http://www.putty.org 에 접속해서
  • 60.
    III. install localterminal • http://www.putty.org 에 접속해서
  • 61.
  • 62.
  • 63.
  • 64.
    III. Open localterminal 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) 실습
  • 78.
  • 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>
  • 89.