GIT/GITHUB 사용 1 Git & GitHub 튜토리얼 출처 : [Studio Rini ] Git 을보통어떻게사용하는지간략한 Flow 를보겠습니다. 1. 새프로젝트를생성, 프로젝트폴더에 g

Similar documents
리눅스기초

git CLI 로간단하게조작하기! by 윤선지

github_introduction.key

슬라이드 1

SourceTree 를이용한 Git 사용법 1

svn 을능숙하게다루던능력자들처음 git 을만나면대게이런표정이죠.

PowerPoint 프레젠테이션

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

슬라이드 1

PowerPoint Presentation

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

System Recovery 사용자 매뉴얼

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

1

문서의 제목 나눔고딕B, 54pt

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

슬라이드 1

작성자 : 기술지원부 김 삼 수

<3833C8A35FB0F8C7D05FC6AEB7BBB5E55F F466C6F77B8A65FC8B0BFEBC7D15FC8BFB0FAC0FBC0CE5FBCD2BDBA5FC7FCBBF35FB0FCB8AE5F F322E687770>

PowerPoint 프레젠테이션

Studuino소프트웨어 설치

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

PowerPoint 프레젠테이션

메뉴얼41페이지-2

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

PowerPoint 프레젠테이션

슬라이드 1

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

PowerPoint 프레젠테이션

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

SBR-100S User Manual

Slide 1

tiawPlot ac 사용방법

IRISCard Anywhere 5

마스터노드세팅하기 마스터노드를세팅하는것은리눅스와블록체인기술에대한기본적인이해가필요합니다. 아래설명을충분히이해하신후실행하시길바랍니다. 또한, 잘못된설치로인한지갑분실사고가발생하지않도록주의하시기바랍니다. 시작하기전에본가이드는마스터노드를처음세팅한다고가정하고작성되었습니다. 필요한

<3836C8A35FB0F8C7D05FC6AEB7BBB5E55F F466C6F77B8A65FC8B0BFEBC7D15FC8BFB0FAC0FBC0CE5FBCD2BDBA5FC7FCBBF35FB0FCB8AE5F F332E687770>

Office 365 사용자 가이드

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint 프레젠테이션

Chapter 1

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

제 2 장 기본 사용법

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Discrete Mathematics

Cubase AI installation guide

Microsoft PowerPoint 통신 및 압축 명령어.ppt

NTD36HD Manual

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Slide 1

01장

Microsoft PowerPoint - comp_prac_081223_2.pptx

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

슬라이드 1

ActFax 4.31 Local Privilege Escalation Exploit

PowerPoint 프레젠테이션

View Licenses and Services (customer)

PowerPoint 프레젠테이션

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

벤처연구사업(전동휠체어) 평가

PowerPoint Template

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용

Microsoft PowerPoint - 08_(Linux)_(Fundamental)_Version_Control_Systems

4S 1차년도 평가 발표자료

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

ICAS CADWorx SPLM License 평가판설치가이드

슬라이드 1

Keil Flexlm 라이선스 설명서

MF5900 Series MF Driver Installation Guide

슬라이드 1

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

C스토어 사용자 매뉴얼

SBR-100S User Manual

ISP and CodeVisionAVR C Compiler.hwp

/chroot/lib/ /chroot/etc/

PowerPoint 프레젠테이션

OnTuneV3_Manager_Install

IP Cam DDNS 설정설명서(MJPEG) hwp

chap2

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Windows Server 2012

Packstack 을이용한 Openstack 설치

Title Here

MF Driver Installation Guide

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

SIGIL 완벽입문

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Transcription:

1 Git & GitHub 튜토리얼 출처 : http://riniblog.egloos.com/viewer/1024993 [Studio Rini ] Git 을보통어떻게사용하는지간략한 Flow 를보겠습니다. 1. 새프로젝트를생성, 프로젝트폴더에 git 을설정한다. 2. 개발한다. 개발중간중간에개발한내용을 commit 한다. 3. 버전 1 을완성한다. 4. 새기능을넣는사람들은 feature branch 를, 버그를고치는사람들은 bugfix branch 를... 등등 branch 를나누어개발한다. 5. 심각한버그가발생하면별도의 hotfix branch 를만들어서빠르게고친다. 6. 각 branch 의개발이끝나면 master branch 로 merge 한다. 꼭이렇게사용한다는보장은없지만어떤느낌으로사용해야할지감은오실거라생각합니다. Git 설치 윈도우즈기준으로설명합니다. GitHub 계정이있는경우 ( 또는만들생각이있을경우 ) - Windows 용 GitHub 를설치한다. - GitHub 를실행하고로그인한다. ( 계정이없으면회원가입한다.) - 로그인되면 Git Shell 을연다. GitHub 계정이없는경우 - msysgit 을설치한다. - Git Bash 를실행한다. - 다음을적는다. git config --global user.name < 이름 > git config --global user.email < 이메일 > 공백이있는문자열을인수로적을때는따옴표를사용합니다. ex) git config --global user.name "John Doe" Shell 명령어 Git 은기본적으로 shell 에서실행됩니다. 그러므로기초적인명령어들은알아두는것이좋습니다. 1 P a g e

- ls 현재디렉토리에있는파일및디렉토리들을출력합니다. -a 옵션으로숨김파일을볼수있습니다. - pwd (Print Working Directory) 현재디렉토리경로를출력합니다. - cd (Change Directory) 현재디렉토리를변경합니다. 이동할경로를입력받습니다. 경로에서. 은현재디렉토리,.. 은상위디렉토리를의미합니다. - touch 파일을생성합니다. 파일명을입력받습니다. - mkdir (MaKe DIRectory) 디렉토리를생성합니다. 디렉토리명을입력받습니다. - rm (ReMove) 파일을제거합니다. 제거할파일명을입력받습니다. 와일드카드문자를사용할수있습니다.? 는임의의한문자, * 은임의의문자열입니다. -f 옵션을주면파일을강제로지웁니다. -r 옵션을주면디렉토리를지울때, 그서브디렉토리까지재귀적으로제거합니다. 그래서 rm -rf 는상당히위험한명령어로언급됩니다. (?) - rmdir (ReMove DIRectory) 디렉토리를제거합니다. 디렉토리명을입력받습니다. 디렉토리가비어있지않으면지울수없습니다. - mv (MoVe) 파일 / 디렉토리를이동시키거나이름을변경합니다. 이동할파일 / 디렉토리명과이동될경로를입력합니다. 또는기존이름과바꿀이름을입력합니다. - vi, vim vi, vim 에디터를엽니다. vi, vim 은유닉스에서사용하는텍스트에디터입니다. GitHub 의 Git Shell 에서는 vi, vim 을쓸수없습니다. vi, vim 의단축키는여기를참조하세요. 파일명이나경로명을입력하는데전체이름이기억이나지않을때, 적당히친다음 Tab 을누르면 자동으로완성해줍니다. 비슷한이름이여러개있을경우 Tab 을여러번누르면다른이름으로바뀝니다. 2 P a g e

Git 사용하기 Git 을본격적으로사용해보겠습니다. 초기화 cd 와 mkdir 로적당한곳에디렉토리를만들고들어갑니다. 저는홈디렉토리 ( 윈도우즈에서사용자디렉토리 ) 에 hellogit 이라는디렉토리를만들었습니다. 디렉토리안에서다음명령어를칩니다. git init 이제이디렉토리는 git 으로관리할수있습니다. 이렇게하면디렉토리에.git 이라는폴더가생성됩니다. 여기에 git 의데이터가저장됩니다. ls -a 를 해보세요. 관리할파일추가 디렉토리에새로운파일을추가합니다. touch README.md git add README.md README.md 라는파일을추가해주었습니다. 그리고그파일을 git 에서관리하도록 add 시켜주었습니다. ( 이렇게새파일을 add 해주는것을추적 (Track) 이라고합니다.) git status 이명령어를치면현재상태를볼수있습니다. 만일 add 되지않은파일이있다면붉은색으로 Untracked files 또는 Changes not staged for commit 목록이나옵니다. README.md 는 add 되었기때문에초록색으로 Changes to be committed 목록에나옵니다. 만일 add 할파일이많은경우그냥 git add * 이라고적으면모든파일, 디렉토리가 add 됩니다. git add * 라고적어도몇가지쓸모없는파일들은 add 되지않도록하고싶다면,.gitignore 라는이름의 파일을만들어야합니다. 파일의내용은무시할파일명패턴들입니다. # 이문자로시작하면주석행 # 특정확장자파일들무시 *.sln *.sdf 3 P a g e

# 특정디렉토리내파일들무시 Debug/ Release/ Project/*.vcproj # [] 를쓰면괄호안의문자들중하나를의미 [Bb]in/ # Bin 또는 bin 많이쓰이는종류의.gitignore 은인터넷에찾으면많이나오고, gitignore.io 같은사이트도있습니다. 커밋 Commit 관리할파일들을모두 add 시켜놓았으면, 이제커밋을해봅시다. 커밋은간단히말해현재상태를저장하는것입니다. git commit 이렇게적으면 vim 이열리면서커밋메시지를입력받습니다. i 를눌러편집모드에들어가고, 메시지를입력한다음, Esc 를누르고, :wq 로저장후빠져나오기를합니다. 이과정이번거롭기때문에보통은이렇게사용합니다. git commit -m < 커밋메시지 > git commit -m "First commit" 이런식으로커밋하시면됩니다. 커밋메시지는상세할수록좋습니다. git log 로커밋로그를볼수도있습니다. 커밋한이후에개발하면서파일이변경되면또 git add 를해주어야합니다. Tracked 는된상태지만 Staged 는되지않은상태이기때문입니다. git add 는파일을 Tracked 상태로만들기도하지만동시에 Staged 상태로만들기도합니다. 커밋은 Staged 된파일만저장하기때문에 git add 를하지않으면변경된내용이없다고판단해버립니다. 브랜치 Branch 개발을하다보면기존에개발하던부분과다른부분의개발을해야하는상황이발생합니다. 예를들어기존코드를리팩토링한다고생각해봅시다. 리팩토링이끝나기전까지는프로그램에기능을추가하는것이어렵습니다. 만일여러명이서작업하고있었다면, 이것은전체가올스톱되는상황을만듭니다. 이럴때, 서로독립적으로평행하게개발을진행하기위해서브랜치를만듭니다. 한브랜치는기능을추가하는개발을하고, 한브랜치는기존코드를리팩토링하는개발을진행하는것입니다. 브랜치가나뉘어있으면, 둘사이의충돌이일어나지않습니다. 일종의평행세계입니다. 물론나중에하나로묶는과정에서충돌이일어나기도하지만그전까지는평화롭습니다. (?) 4 P a g e

기본적으로 git 을초기화하면 master 브랜치가생깁니다. 그리고 commit 을하면이 master 브랜치에서 커밋이일어납니다. 그림으로는이렇습니다. 커밋을하면이전커밋에서바뀐부분만저장됩니다. 그래서이전커밋을이렇게줄줄이소시지처럼 가르키게됩니다. 새브랜치를만들어봅시다. git branch refact 브랜치를만들면현재브랜치와같은곳에브랜치가생성됩니다. 현재브랜치는 master 로유지됩니다. 이상태에서커밋을하면 5 P a g e

이렇게나누어집니다. 현재브랜치를 refact 브랜치로바꾸어봅시다. git checkout refact 브랜치를바꾸고커밋하면아래처럼됩니다. 둘은서로독립적입니다. master 에서변경이일어나도 refect 에는전혀영향을주지못합니다. 그반대도마찬가지입니다. 여담으로브랜치를만들고 checkout 하는것을한번에하는방법이있습니다. git checkout -b < 브랜치이름 > 브랜치를지우고싶을경우에는 -d 를씁니다. git branch -d < 브랜치이름 > 6 P a g e

병합 merge 이렇게브랜치를나누어개발하는중에한브랜치의개발이끝났습니다. 그리고기존브랜치에그개발상황을적용시키려고합니다. 이럴때사용하는것이 merge 입니다. master 브랜치에 refect 브랜치를병합하려고합니다. 이럴땐현재브랜치가 master 브랜치인상태에서다음명령어를씁니다. git merge refact 7 P a g e

새로운커밋이생성되며, 이는 refect 의내용과 master 의내용이합해진형태가됩니다. 이과정에서충돌이일어나기도합니다. 예를들어 a.txt 가 master, refact 둘모두에서변경되었다면, 두버전중하나를선택해주어야합니다. a.txt 를열면충돌된부분이표시되어있기때문에그부분을수정하고다시 git add a.txt 를해서커밋하면됩니다. ( 새로운커밋이생기지는않고머지커밋이갱신됩니다.) 여담으로이상태에서 refact 브랜치에 master 를 merge 하면이렇게됩니다. 8 P a g e

refect 가 master 가있는곳으로이동합니다. 이를 fast-forward 라고합니다. 리베이스 Rebase merge 는보시다시피병합된브랜치의커밋히스토리가남습니다. 이렇게 merge 를계속하다보면커밋히스토리가지저분해집니다. rebase 는 merge 와똑같이브랜치를병합하지만히스토리가일자로깨끗합니다. 9 P a g e

좀전과같은상황입니다. refact 브랜치를선택한상태에서다음명령어를입력합니다. git rebase master 이렇게하면 master 브랜치작업이후에 refact 작업을한것처럼병합이이루어집니다. master 브랜치를 fast-forward 하면 10 P a g e

이렇게됩니다. merge 보다깔끔합니다. 그래서여러경우에서는 merge 보다 rebase 를더추천합니다. ( 자세한내용은저도아직잘모르겠습니다.) 복구 개발도중에는코드가엉켜서도저히나아가기힘든상황에놓이기도합니다. 이럴때 git 을사용해과거의코드를다시가져올수있습니다. git checkout [< 커밋이름 >] -- < 파일명 > [] 는생략가능한부분입니다. 커밋이름을생략하면, 현재가르키는중인커밋 (HEAD) 을사용합니다. 커밋이름은 git log 를하면나오는커밋의해시값입니다. 전부다적을필요는없고앞에네글자만적어도대부분됩니다. 해시값말고 branch 이름도가능합니다. 그외에 HEAD 라는상수도사용할수있는데, 이는현재가르키고있는커밋을말합니다. 커밋이름뒤에 ^를붙이면그커밋의부모 ( 바로전 ) 커밋을의미하고, ~< 숫자 > 를붙이면그커밋의 < 숫자 > 번째부모 ( 전 ) 커밋을의미합니다. 예를들어최근커밋한 a.txt 로복구하고싶다면 git checkout -- a.txt 라고적으면됩니다. 또는 f5d4 커밋때의모든파일을가져오고싶다면 git checkout f5d4 -- * 라고적으면됩니다. 11 P a g e

커밋자체를취소하고싶을경우도있습니다. - 방금한커밋을수정하고싶을경우 git commit --amend 메시지를잘못적었거나, 깜빡하고 add 하지못한파일이있거나할때, git add 를하고나서 git commit --amend -m < 새메시지 > 를적으면방금했던커밋이수정됩니다. - 커밋자체를취소하고싶은경우 git reset < 돌아갈커밋이름 > git revert < 취소할커밋 > reset 과 revert 의작동방식은조금다릅니다. reset 은돌아갈커밋이름으로적은커밋으로롤백합니다. 바로전으로돌아가려면 git reset HEAD^나 git reset HEAD~1 을적으면됩니다. revert 는취소할커밋의변경내용을정확히거꾸로수행한새로운커밋을만듭니다. 결과적으로는둘다커밋하기전상태로돌아갑니다. 대신 reset 은커밋했던히스토리가남지않을수도있습니다. revert 는커밋했던히스토리가남습니다. 보통원격저장소에는 reset 대신 revert 를씁니다. ** GitHub 오래기다렸습니다. 드디어 Git 으로 GitHub 를사용하는방법을알아보겠습니다. GitHub 가아닌다른서비스라고해도사용방법은크게다르지않습니다. Repository 생성 로그인을하고 New repository 로새로운저장소를만듭니다. 12 P a g e

저장소의이름을정하고, Description 에는필요한설명을적습니다. Github 에서 Private( 개인 ) 저장소를만드려면프리미엄계정으로업그레이드해야합니다. 우리는 GitHub 에서만든저장소를가져올것이기때문에 README 를생성하도록하겠습니다..gitignore 와라이선스는자신의입맛에따라선택하시면됩니다. Create repository 를누르면저장소가만들어집니다. 원격저장소가져오기 이렇게만든저장소를이용하려면우선우리컴퓨터로가져와야합니다. 이를 clone 이라고합니다. shell 을열고적당한곳에가서아래명령을칩니다. git clone < 저장소 URL> 저장소 URL 은오른쪽아래에있습니다. 13 P a g e

clone 하게되면해당디렉토리에저장소이름과똑같은폴더가생성됩니다. 안에는이미 git 이 설정되어있는저장소가그대로복사되어들어와있습니다. 만약윈도우즈용 GitHub 를설치했다면아래의 Clone in Desktop 을클릭해서바로 clone 할수도있습니다. 이때디폴트경로는사용자디렉토리아래의 Documents 아래의 GitHub 입니다. 원격저장소에저장하기 컴퓨터에서한동안작업하면서커밋도하고이것저것했을겁니다. 그럼그결과를다시원격저장소에보내주어야합니다. git push < 원격저장소이름 > < 보내줄브랜치 > 우리는원격저장소를가져온경우이기때문에원격저장소이름은기본적으로 origin 으로 설정되어있습니다. 보내줄브랜치는보통 master 를적고, 다른브랜치를작업중이었다면그브랜치를적어줍니다. 이경우에는 git push 라고만적어도작동합니다. 이렇게하면저장소에지금까지의내역이저장됩니다. GitHub 로설치한 shell 에서는문제없이 push 되지만 msysgit 으로 push 할경우 github 계정을 인증하는단계가필요합니다. 한가지중요한점은, 누군가가 push 를했다면다른사람들은 push 를할수없습니다. push 를하려면업데이트된저장소를불러온다음병합해서 push 해야합니다. 원격저장소에서업데이트받기 우리가우리컴퓨터에서작업하는동안에다른사람이작업한내용을원격저장소에 push 할수도있습니다. 이렇게되면원격저장소내용을받아와서업데이트를해주어야합니다. 14 P a g e

이때사용하는명령어는 pull 입니다. git pull pull 을하면 fetch 와 merge 가이루어집니다. fetch 는원격저장소의데이터를가져오는작업입니다. git fetch 만실행하면새로운데이터를가져오고 origin/master 브랜치가생깁니다. 이브랜치는원격저장소의 master 를나타내며, 변경할수는없고참조만가능합니다. 보통은이원격저장소의 master 와이컴퓨터의 master 를 merge 해서계속작업합니다. pull 했을때일어나는충돌은 merge 와똑같은방식으로처리합니다. git log --oneline --decorate 를입력하면로그를조금더예쁘게 (?) 볼수있습니다. --decorate 옵션을사용하면 HEAD, origin/master, master 등의브랜치와태그들을볼수있습니다. 로컬저장소를원격저장소로만들때 방금은원격저장소를만든다음로컬저장소로복사해왔습니다. 이번에는반대로로컬저장소를만들고, 그것을원격저장소로전송하겠습니다. 만일 git init 으로저장소를만든경우에는원격저장소이름을설정해주어야합니다. git remote 이것만입력하면원격저장소목록이나옵니다. git remote add < 저장소이름 > < 저장소 URL> 이렇게입력하면새로운저장소를추가할수있습니다. 그다음 push 합니다. git push -u < 저장소이름 > < 보내줄브랜치 > 여기서 -u 옵션을쓴이유는, 이렇게하면 git push 와 git pull 을인수없이사용할수있기때문입니다. push 를하려면적어도한번은커밋을해야합니다. 이이후는원격저장소를가져온경우와똑같이활용가능합니다. 윈도우용 GitHub Shell 외의 Shell 에서 GitHub 인증하는방법 ( 특히 2 차비밀번호 OTP 쓸경우 ) 이곳의내용은윈도우용 GitHub Shell 을쓸경우넘어가도됩니다. 15 P a g e

SSH 키등록등이자동으로이루어지기때문에신경쓸필요없습니다. 우선이그림부터다시시작합니다. 여기서 SSH 를누른다음 URL 을복사합니다. 저장소 URL 을 SSH URL 로해야하는것입니다. 그다음 shell 로돌아갑니다. SSH Key 를생성할겁니다. ( 여기부터는이글의설명을옮긴것입니다.) ~( 홈디렉토리 ) 로 cd 합니다. cd ~.ssh 디렉토리로들어갑니다. 없으면만듭니다. mkdir.ssh cd.ssh ls 를쳐보고 id_rsa 같은파일이없으면다음명령어를칩니다. ssh-keygen -t rsa -C < 이메일주소 > Enter file in which to save the key 라는말이나오면그냥엔터누릅니다. ( 이미겹치는파일이있다면다른경로를적거나파일명을다르게적거나합니다.) passphrase 를적으라는말이나옵니다. 하고싶은비밀번호를적습니다. 비밀번호가필요없다면그냥엔터누릅니다. 비밀번호재확인합니다. 이렇게하면 ssh key 가만들어집니다. clip < ~/.ssh/id_rsa.pub 이걸치면클립보드에공개키가복사됩니다. GitHub 설정페이지의 SSH Key 페이지로갑니다. 16 P a g e

Add SSH Key 를누르고, Key 부분에붙여넣기합니다. 이름은적당히구분할수있도록적습니다. ( 개인용 PC msysgit 라던가 ) Add Key 를누릅니다. 이것으로 SSH 공개키는등록되었습니다. 이제 git 으로 push 던 pull 이던저장소 URL 로접근합니다. yes no 묻는게나오면그냥 yes 합니다. ( 기억이가물가물...) 그이후로는매번 passphrase 적었던걸넣어주면됩니다. ssh-agent 를사용하면한번만적고그이후로는비밀번호안적어도된다는정보를본것같은데, ssh-add 가제대로작동을안해서저는실패...() ** 이것으로 Git 과 GitHub( 정확히는원격저장소 ) 사용법을보았습니다.... 쓰다보니뭔가내용이많아지고저도모르는내용도막들어가면서...... 아무튼도움이되었으면좋겠습니다.< 브랜치, 머지, 리베이스설명하는데사용한스샷은여기를이용했습니다. 직접코드치면서실습도가능합니다. 17 P a g e