Git Jara.

Slides:



Advertisements
Similar presentations
Trillion. 목차 Git 이란 ? Git 이 왜 좋은가 ? Github 란 ? Github 등록절차 Git 설치 및 사용법 ( 번외 ) Egit 란 ? Egit 을 이용한 프로젝트 관리법 용어 정리.
Advertisements

데이터 완전삭제프로그램 Perfect Delete 사용설명서  주의 이 프로그램을 이용하여 삭제된 데이터는 어떠한 방법으 로도 복구가 불가능합니다. 그러므로 실제 데이터 삭제시 신중을 기하기 바랍니다.
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
컴퓨터와 인터넷.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Git
SAS Foundation Client 9.4 설치 가이드
윈도우7 체크 설치 매뉴얼
뇌를 자극하는 Windows Server 2012 R2
J2ME Install 부산대학교 인공지능 연구실.
1 최초 한번만 실행 Git 초기화 git init git config user.name “StudentNum”
9. Deploying mean applications
Windows Server 장. 사고를 대비한 데이터 백업.
Git 사용법 GitHub 가입 GitHub 새 저장소 만들기 Git 설치, 설정.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
PLISM 컴포넌트 설치 방법.
Android 시리즈 H2O SIM Card 데이터 사용 설정 방법
remote add origin <GitHub url>
8장. 원격지 시스템 관리하기.
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
FTP 프로그램 채계화 박재은 박수민.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
Git 사용법 GitHub 가입 GitHub 새 저장소 만들기 Git 설치 로컬 저장소 만들기 로컬 저장소와 원격 저장소 연결
3장. CentOS 리눅스 설치.
이종효 이슬기 강민수 송강산 이해인 은혁진.
김인수 , 김성중 , 김동권 , 김재흠 , 김성태 발표일 : 발표자 : 김인수
시스템 인터페이스 Lab3 Unix 사용법 실습.
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
설치 환경 □ 운영체제 버전 : CentOS Linux 7.2 □ 리눅스 커널 버전 :
SSH, VNC Mobile Engineering, Kyungwoon Univ. Embedded System Design.
뇌를 자극하는 Windows Server 2012 R2
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
FileMaker를 이용한 데이터 관리 옥현진(KICE).
MAIL CLIENT 김창우 윤성훈 이경재.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
Git 사용하기 Git 소개 Git 사용 환경 GitHub 가입 및 원격 저장소 만들기 Git 설치 Git 최초 설정
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Teaming pms.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
청각장애인용 APP 구성 및 사용법.
STS 에서 웹 서버 설치 방법.
 파일 아카이브와 압축 명령 익히기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
소리가 작으면 이어폰 사용 권장!.
Git을 이용한 버전 관리 - Branch 실습
구글 계정 생성가이드.
Docker Study 6~7.
펌웨어(S/W) Upgrade 방법 Samsung Kies3
오늘의 강의 제목을 입력하세요 소 속 : 인문대학 국어국문학과 이 름 : 홍길동 교수 1.
JAVA 프로그래밍 16장 JNLP.
CCISS 어레이 형식 centos7 설치방법
SafeMSR 설정.
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

Git Jara

목차 Git이란? - 분산버전관리시스템(DVCS) Git 기초 Git branch Github

Git을 왜 쓰나? 여러 사람이 서로 동일한 프로젝트를 진행한다. 분업을 위해 각자의 작업을 한다. 여러 사람이 서로 동일한 프로젝트를 진행한다. 분업을 위해 각자의 작업을 한다. 작업을 하다보면 서로의 작업 소스가 필요할텐데 이 때마다 메일을 보내야 한다. 만약 작업인원의 수가 많다면, 누가 무 슨 작업을 진행중인지도 기억하기 어 렵다.

VCS(Version control System)? 각 파일, 전체 프로젝트를 이전 상태로 되돌릴 수 있다. 시간에 따라 수정 내용을 비교해 볼 수 있다. 누가 문제를 일으켰는지 추적해 볼 수 있다. CVCS나 DVCS를 사용하면 쉽게 다른 프로그래머와 협업할 수 있다.

CVCS vs DVCS CVCS(Centralized VCS) : 중앙 집중식 버 전 관리 시스템 DVCS(Distributed VCS) : 분산형 버전 관 리 시스템

CVCS의 특징 모든 파일을 관리하는 서버가 따로있고 많은 클라이언트가 이 중앙 서버에서 파일을 받아서 사용한다(Checkout). 관리하기가 쉽다 Subversion이 대표적인 예이다.

But, 만약 중앙서버가 한시간 동안 다운되 면 아무도 다른사람과 협업할 수 없고 했던 일을 백업할 수도 없다. 만약 중앙서버가 한시간 동안 다운되 면 아무도 다른사람과 협업할 수 없고 했던 일을 백업할 수도 없다. 만약 중앙서버의 하드디스크에 문제가 생기면 프로젝트를 복구할 수 없다.

DVCS의 특징 전체 저장소를 클라 이언트가 가지고 있 다. 중앙서버가 다운되거 나 인터넷을 사용 할 수 없어도 충분히 작 업을 진행할 수 있다. 중앙서버의 하드디스 크에 문제가생겨도 클라이언트의 저장소 로 복구할 수 있다.

git? DVCS이다. 리눅스의 창시자인 리누스 토발즈가 원래 사용하고 있던 BitKeeper라는 VCS 를 사용할 수 없게 되면서(짜증나서 2 주만에) 직접 VCS를 개발하였다.

git? Git은 아래의 목표를 가지고 개발되었 다. 빠른 속도 단순한 구조 비 선형적인 개발(동시 다발적인 수천개의 branch) 완벽한 분산 리눅스 커널 등 대형 프로젝트에도 유용할 것

Git의 세가지 상태 Commited : 데이터가 로컬DB에 안전하 게 저장되있음 Modified : 수정한 파일을 아직 로컬DB 에 commit하지 않음 Staged: 현재 수정한 파일을 곧 commit 할것이라고 표시한 상태

Git의 세가지 상태

Git에서 하는일 1. working directory에서 파일을 수정 2. Staging Area에 파일을 stage에서 커밋 할 snapshot을 만든다.(git add) 3. Staginig Area에 있는 파일을 커밋해서 git directory에 영구적인 스냅샷으로 저 장한다. (git commit)

Git 설치 apt-get install git

Git 설정 ~/.gitconfig .git/config 우리는 git config --global user.name “이름” git config --global user.email “이메일” git config --list로 확인

Git 저장소 만들기 git init : 현재 저장소를 git저장소로 만든다. git clone : 이미 실행되고 있는 프로젝트 히스토리 를 모두 받아서 저장소를 만들어준다. git@github.com:sparcsJara/seminar.git

Git에서의 파일상태

파일 상태 확인하기 Git status vim my_project

파일을 새로 추적하기 Untracked -> staged git add <filename>

Modified -> stage 파일 수정 후 git status Changes not staged for commit: Git add로 추가

파일 무시하기 .gitignore파일 <ex> *.[oa]: .o나 .a로 끝나는 파일 무시 *~: ~로 끝나는 파일 무시

git diff unstaged 상태의 파일의 최종 커밋으로 부터 변경사항을 알려줌 --staged : staged상태의 파일의 최종 커 밋으로부터의 변경사항을 알려줌

변경사항 commit Git commit :staged인 상태의 파일을 localDB에 저장 만약 nano같은 editor가 뜨면 Git config –global core.editor로 바꿔주자

Commit history 조회 Git log -p : 각 커밋의 diff 결과를 보여줌 --since : 명시한 날짜 이후만 --author: 입력한 저자의 커밋만

되돌리기 Git commit --amend Add하지 말아야했을 것을 add한 경우: (ex) git commit -m “initial commit”; Git add forgotten_file Git commit –ammend 2번째 commit에 첫번째 commit을 덮어쓴다. Add하지 말아야했을 것을 add한 경우: Git reset HEAD <파일이름>

리모트 저장소 Git remote: 현 리모트저장소를 확인 가 능 Git fetch [remote-name] 리모트저장소에서 데이터 가져오기 Git pull [remote-name] Fetch 후 merge Git push [remote-name] [branch-name]: 브랜치에 현재까지 커밋한 것 추가

Git 브렌치란? 커밋을 가리키는 포인터 큰 나무의 가지라고 생각합시다. 보통 작업을 분업할 때 많이 사용합니 다.

새 브렌치 생성하기 git branch [branch-name] : 현재 브랜치가 가리키는 커밋에 새로운 브랜치를 만든다. : 현재 브랜치가 가리키는 커밋에 새로운 브랜치를 만든다. Git log --decorate : 쉽게 브렌치가 어떤 커밋을 가리키는지 확인가능

Branch 이동 Git checkout [branch-name] : 다른 브렌치로 head가 이동 -b : branch를 만들고 그 브랜치로 이동

example

example

브랜치와 Merge의 기초

브랜치와 Merge의 기초

브랜치와 Merge의 기초

브랜치와 Merge의 기초

브랜치와 Merge의 기초

Merge conflict란? Merge를 할 때 두 브랜치에서 작업한 내용이 충돌할 수 있습니다. --제가 한 번 보여드리겠습니다.

Long running branch 배포했거나 배포 할 code들만 master branch가 가리킨다. 개발하고있는 code는 develop이라는 branch를 만들어 개발한다. develop branch가 안정되면 master branch와 merge한다.

Long running branch

리모트 브랜치 리모트 저장소에 있는 브랜치 우리 서버에서는 리모트 트래킹 브랜 치(리모트 브랜치를 추적(tracking)하는 브랜치) 리모트 트래킹 브랜치는 리모트서버와 연결될 때 리모트 서버를 기억한다. 로 컬에서는 움직일 수 없다.

브렌치 추적 리모트 트래킹 브랜치를 로컬 브랜치 로 checkout하면 트래킹 브랜치가 생성 트래킹 브랜치에서 git pull을 하면 리모 트 저장소로부터 데이터를 내려받아 리모트 브랜치와 자동으로 merge Git checkout –b [branch] [remotename]/[branch]

Git pull Git fetch: 서버에서 데이터를 받아와 로 컬에 저장 Git Pull: fetch후 merge해준다.

Git push 로컬의 브랜치에 작업한 커밋을 리모 트 저장소로 전송함 Push하기 전에 pull을 받고 수정하자.[다 른 사람이 서버에 작업한 게 있을 수 있 다]

rebase

Rebase의 위험성 이미 공개저장소에 push한 커밋을 rebase하지마라

Merge vs rebase Rebase를 하면 커밋 로그에 깨끗해져요 Merge를 하면 merge를 했다는 기록이 남게 되요. 스팍스에서는 rebase를 하는 걸로 교육받았습니 다. git pull --rebase pull하실 때 뒤에 rebase옵션을 붙여주세요.

GitHub Githb는 가장 큰 git 저장소 호스트입니 다. 수백만 개발자가 모여서 수백만 프로 젝트가 수행중입니다. (sp lab이라던가, KENS라던가, Pintos라던가…) 스팍스의 프로젝트도 모두 github에서 오픈소스로 관리하고 있습니다.

Github 등록 www.github.com으로 가입해주세요.

Git protocol Git에서는 4가지 통신 protocol이 사용 가능합니다.(local, ssh, http, git)

ssh 공개키 만들기 공개키를 이용해서 github가 우리의 localdirectory가 누구의 것인지 식별할 것입니다. Cd ~/.ssh -> id_dsa.pub있는지 확인 없으면 ssh-keygen으로 생성 Cat ~/.ssh/id_rsa.pub

Ssh키 등록 계정 설정에 들어가서 ssh 키를 등록하 자

오늘의 실습 Github에 가입후 ssh키를 등록하자 개인 repository를 만들자 Reposytory를 clone한 후에 아무거나 작 업해서 커밋한 후 push Adios.

오늘의 과제 신입생 프로젝트를 github에서 진행해 봅시다.