본문 바로가기
버전관리

github를 이용한 소셜 코딩

by 언니팬더 2017. 10. 13.

1. github란 

 - git repositoty  가 많이 모여 있는 서비스

- 개발자들이 소통할 수 있는 pull Request

- 소스 공유과 참여가 쉽게 가능


2. github 특징

 -Repository forf

  : 프로젝트를 처음부터 생성하는 것이 아니라 다른 사람이 이미 만든 프로젝트를 나의 프로젝트로 옮기는 기능

 -Pull requests

  : 소스의 변경사항을  Fork한 저장소에 커밋 후 원작자에게 원본 소스변경을 요청하는 기능

 - Social Networking

  : 다른 사람이 어떤 프로젝트에 참여중이며 어떻게 코드를 작성하는지 볼 수있고 프로젝트에 대한 의견 교환릉 할  수 있는 기능

 - Chanlelogs

 : 다수의 사용자가 개발을 함꼐 진행하기 떄문에 변경 이력 관리가 어렵지만 github를 이용하여 편리하게 진행 할 수 있게 도와주는 기능 


3. 활용 - 다른 공개 저장소 보기

코딩을 잘하고 싶으세요? : 그럼 잘 만든 소스를 많이 보세요

소스가 어디 있는데요? : github에공개되어있습니다

fork가 많고 최근까지 활동이 활발하고

별점이 높은 프로젝트


다른 비공개 저장소

빅버킷

빅랩


4. 활용 -  Github 공개 저장소 생성

 - 레포지토리명 

 : 원격 저장소의 URL 정보가 로그인 ID/레포지토리명을 생성

 -  공개 여부 

 : 저장소를 공개할지ㅣ 여부 , 비공개는 유료버전에서만 가능

 - README

 : 저장소에 들어왔을떄 처음 보여주는 페이지



5. 마크다운 문법 맛보기

 HTML형식의 문서를 쉽게 작성하기 위한 문법 ]


연습 : 웹 스ㅋ토어 : stackedit 다운

https://stackedit.io/editor



6. Remote Add

로컬 저장소에 원격 저장소 url을 등록하는 명령 

git remote add [alias] [url]

git remote add origin https://github.com/,,,/new



KST02@KST02 MINGW64 ~

$ mkdir git_remote


KST02@KST02 MINGW64 ~

$ cd git_remote/


KST02@KST02 MINGW64 ~/git_remote

$ git init

Initialized empty Git repository in C:/Users/KST02/git_remote/.git/


KST02@KST02 MINGW64 ~/git_remote (master)

$ git remote add github https://github.com/mpanda-kr/miafrist-git-kr


KST02@KST02 MINGW64 ~/git_remote (master)

$ git remote -v

github  https://github.com/mpanda-kr/miafrist-git-kr (fetch)

github  https://github.com/mpanda-kr/miafrist-git-kr (push)


KST02@KST02 MINGW64 ~/git_remote (master)

$



========
7. Fetch
원격 저장소에 있는 내용을 로컬로 받는 명령 
git fetch [alias][branch]
git fetch origin 
>> 다운하고 워킹디렉토리에 영향 안받음
 
KST02@KST02 MINGW64 ~
$ mkdir git_remote

KST02@KST02 MINGW64 ~
$ cd git_remote/

KST02@KST02 MINGW64 ~/git_remote
$ git init
Initialized empty Git repository in C:/Users/KST02/git_remote/.git/

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote add github https://github.com/mpanda-kr/miafrist-git-kr

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote -v
github  https://github.com/mpanda-kr/miafrist-git-kr (fetch)
github  https://github.com/mpanda-kr/miafrist-git-kr (push)

KST02@KST02 MINGW64 ~/git_remote (master)
$ ^C

KST02@KST02 MINGW64 ~/git_remote (master)
$ clear

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote -v
github  https://github.com/mpanda-kr/miafrist-git-kr (fetch)
github  https://github.com/mpanda-kr/miafrist-git-kr (push)

KST02@KST02 MINGW64 ~/git_remote (master)
$ git fetch github
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), done.
From https://github.com/mpanda-kr/miafrist-git-kr
 * [new branch]      master     -> github/master

KST02@KST02 MINGW64 ~/git_remote (master)
$ ls

KST02@KST02 MINGW64 ~/git_remote (master)
$ ls -al
total 24
drwxr-xr-x 1 KST02 197121 0 10월 13 11:59 ./
drwxr-xr-x 1 KST02 197121 0 10월 13 11:59 ../
drwxr-xr-x 1 KST02 197121 0 10월 13 12:04 .git/

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote add github https://github.com/facebook/react
fatal: remote github already exists.

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote add react_origin https://github.com/facebook/react

KST02@KST02 MINGW64 ~/git_remote (master)
$ git remote -v
github  https://github.com/mpanda-kr/miafrist-git-kr (fetch)
github  https://github.com/mpanda-kr/miafrist-git-kr (push)
react_origin    https://github.com/facebook/react (fetch)
react_origin    https://github.com/facebook/react (push)
=========================
8.  pull 
원격 저장소에 있는 내용을 로컬로 받고 자동으로 Merge 동작을 수행하는 명령
git pull [alias][branch]
git pull origin

KST02@KST02 MINGW64 ~/git_remote (master)
$ git pull github master
From https://github.com/mpanda-kr/miafrist-git-kr
 * branch                master     -> FETCH_HEAD

KST02@KST02 MINGW64 ~/git_remote (master)
$ ^C

KST02@KST02 MINGW64 ~/git_remote (master)
$ ls -al
total 34
drwxr-xr-x 1 KST02 197121    0 10월 13 12:18 ./
drwxr-xr-x 1 KST02 197121    0 10월 13 11:59 ../
drwxr-xr-x 1 KST02 197121    0 10월 13 12:18 .git/
-rw-r--r-- 1 KST02 197121  294 10월 13 12:18 .gitignore
-rw-r--r-- 1 KST02 197121 1087 10월 13 12:18 LICENSE
-rw-r--r-- 1 KST02 197121   33 10월 13 12:18 README.md


9. Push 
로컬 저장소의 내용을 원격 저장소로 업로드 
git push [alias][branch]
git push -u origin master 


…or create a new repository on the command line

echo "# push-test1" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/mpanda-kr/push-test1.git
git push -u origin master

…or push an existing repository from the command line

git remote add origin https://github.com/mpanda-kr/push-test1.git
git push -u origin master

…or import code from another repository

You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

Import code


로컬에 있다는 것은 문제를 내포하고 있다는 것. 


$ cd ..


KST02@KST02 MINGW64 ~

$ mkdir push-test


KST02@KST02 MINGW64 ~

$ git init

Initialized empty Git repository in C:/Users/KST02/.git/


KST02@KST02 MINGW64 ~ (master)

$ touch test.html


KST02@KST02 MINGW64 ~ (master)

$ git add test.html


KST02@KST02 MINGW64 ~ (master)

$ git commit -m "Test.html"

[master (root-commit) 6c9baf9] Test.html

 1 file changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 test.html


KST02@KST02 MINGW64 ~ (master)

$ git remote add origin https://github.com/mpanda-kr/push-test1


KST02@KST02 MINGW64 ~ (master)

$ git remote -v

origin  https://github.com/mpanda-kr/push-test1 (fetch)

origin  https://github.com/mpanda-kr/push-test1 (push)


KST02@KST02 MINGW64 ~ (master)

$ git push -u origin master

Logon failed, use ctrl+c to cancel basic credential prompt.

Username for 'https://github.com': mia

vosremote: Invalid username or password.

fatal: Authentication failed for 'https://github.com/mpanda-kr/push-test1/'


KST02@KST02 MINGW64 ~ (master)

$ git push -u origin master

Counting objects: 3, done.

Writing objects: 100% (3/3), 207 bytes | 207.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To https://github.com/mpanda-kr/push-test1

 * [new branch]      master -> master

Branch master set up to track remote branch master from origin.


KST02@KST02 MINGW64 ~ (master)

$


10.Clone
공개된 원격 저장소를 다운로드 하는 명령
다운로드만하고 싶다?!(복제)

 git clone[url]
 git clone https://github.com/coozplzUs/test.git


11.Pull REquest 이용하기

오픈 소스에서 기능 개선 또는 버그가 있는 경우

직접 수정하고 원작자에게 반영 요청을 하는 기능


*내가 사용하는 오픈 소스에 버그가 잇는 경우

*신규 기능을 추가하고 싶은 경우 


소스의 버그 처리 속도가 엄청 빠름



1) 원작자의 저상소를 fork 

2)