Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

류동균의 R 공부방입니다.

Github 환경 구축하기 본문

카테고리 없음

Github 환경 구축하기

R쟁이 2020. 1. 12. 22:09

Github란 무엇인가?

 

GitHub는 온라인상에 git데이터를 저장해주는 저장소이며 파일을 관리해주는 사이트 라고 할 수 있다.  또한 단순히 파일을 저장하는 기능이 있는 것 뿐만 아니라 하나의 프로젝트에 여러 사람들이 코드를 공유하고 제작하는 목적으로 사용한다. Github는 단순히 save가 아닌 commit, push의 형태로 파일을 저장한다. 이를 통해 하나의 프로젝트에 여러인원이 투입 될 경우 총괄하는 매니저와 팀원으로 나누어 프로젝트를 동시에 여러인원이 생성 및 수정하여 commit하고 매니저의 승인을 통해 push하는 구조라고 생각된다.

 

Github 환경 구축하기

1. Repository 생성

 

우선 Github 사이트( https://github.com/ ) 에 접속해서 회원가입을 해주도록한다. 

 

로그인을 하게되면 다음과 같은 화면이 나올텐대 사용자 옆에 +키를 누르고 New repository를 누른다.

Repository name에는 원하는 이름을 넣어주고 README 버튼을 체크, Add . gitignore은 원하는 언어를 선택해준 후 Add a license는 Mit License로 설정한다.

이렇게 하면 Repository가 만들어 진 것을 확인할 수 있다.

 

 

2. Linux에 Git 및 접속설정

 

Repository를 생성했으면 이번엔 Linux에 Git을 설치해주도록 한다.

# git 설치
yum -y install git

git이 설치가 완료 되었으면 다음과 같이 Rserver 혹은 자신이 쓰는 언어Server의 아이디에 접속해주도록 한다.

# 유저 접속
su - [유저명]

접속하였으면 git 계정을 등록해준다

# git 유저 설정
git config --global user.name "import your username"

# git 이메일 설정
git config --global user.email "import your email"

 

3. R에서 Git new project 생성

 

R에서 new project 버튼을 클릭하고 version Control을 선택한 후 git을 선택해준다.

처음에 만든 Github Repository URL을 넣어고 프로젝트를 생성한다.

Linux에서 ls명령어를 쳐보면 Repository의 이름으로 폴더가 하나 생성 됬음을 확인 할 수 있다.

4. Github commit, push

 

Rserver에서 간단하게 test 파일을 만들어주자 print('git_test')정도면 될 거 같다. 그 후에 git 버튼을 눌러주고 commit해보자

다음과 같은 화면이 나오면 commit해야하는 파일을 선택해주고 commit message에 간단하게 서술 후 commit를 눌러준다. commit message 는 실무에서는 어떠한 code를 작성했는지, 어떠한 코드를 변경했는지 간단하게 서술하는 공간이다.

다시 linux로 돌아가서 git_test 폴더로 들어간 후 다음과 같이 해보면 아까 Rserver에서 만든 git_test.R이 생성되었다.

git status

이번엔 commit 말고 push를 해보자 Push Branch를 눌러주면 다음과 같은 화면이 나오면서 push된다.

 

 

이제 Github Repository를 확인하면 git_test.R이 생성된 것을 확인할 수 있다.

이렇게 Github 환경을 구성하고 파일을 commit, push 해보았다. 하나의 프로젝트에 여러인원이 투입되기 마련인데 이러한 프로젝트를 효율적으로 관리하기위해서 Github라는 것은 유용한 프로젝트 관리 툴으로 쓰일 것 같다.