본문 바로가기

Base가 되는 정보들

깃헙(Github)

 

 

■ 깃헙(Github)이란?

- 개발자들 자신이 진행한 개발의 진행 사항을 온라인(원격)에서 확인할 수 있는 서비스를 말한다. 좀 어렵게 말하면 Git Source 저장소다. 제일 중요한건 무료다!(비공개 저장소 제외)

 

여기서 깃(Git)이란?

- 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템(소프트웨어)을 말한다.

  즉 여러 개발자들이 특정 프로젝트를 자신의 컴퓨터로 서로 협업하여 개발하면서 버전(Commit)을 관리할 수 있는 시    스템이다.  깃의 작업 폴더는 모두 기록하고 있어 추적이 가능하며 저장소가 자신의 컴퓨터 안에 있다.

 

 

이제 깃헙으로 넘어가면 깃헙은 두 가지 방법으로 깃(Git)을 더 편하게 해준다.

1. 깃허브 소프트웨어(Git Bash, Git GUI)를 다운로드하면 깃헙 홈페이지에서 자신의 프로젝트를 관리할 수 있게 해주는 인터페이스를 제공해준다.  다운로드 주소 : http://git-scm.com/download/win

2. Github.com에서 계정을 생성하면 웹에서 프로젝트를 위에서 얘기한 버전관리를 할 수 있으며 업데이트 보기(Watch), 좋아요(Star), 프로젝트 복사(Fork)기능도 할 수 있다.

 

 

 

Github의 주요 용어

 

저장소(Repository) : 프로젝트가 있는 디렉토리나 저장 공간. 저장소를 설치해야 프로젝트를 만들어 깃헙을 활용할 수 있다.

원격 저장소(Remote Repository) : 저장소가 내 PC말고 다른 어딘가의 서버에 위치해 있는 저장소를 말한다. 깃헙의 핵심이라고 말할 수 있다.

커밋(Commit) : 깃에서 권력을 주는 명령이다. 어떤 순간의 작업공간의 상태를 저장하는 것인데 비유해서 얘기하자면 자신의 프로젝트 저장소의 일종의 "스냅샷"을 찍어 프로젝트의 체크포인트를 만들어준다. 커밋을 활용하면 프로젝트를 커밋한 시점으로 이동해서 복원할 수도 있고 확인할수도 있다.

브랜치(Branch) : 프로젝트를 협업하는 사용자들은 메인 프로젝트(기둥)에서 브랜치를 뽑아(branch off), 자신만의 데모 버전을 만든다. 자신이 작업을 마친 후 그 브랜치의 기능을 프로젝트의 메인 디렉토리인 "master"에 합치고 싶으면 그 브랜치를 "master"에 "Merge"한다. 즉, 단어 뜻대로 합(병)친다. 컴퓨터 용어들은 변수 이름을 정할 때도 그 변수의 기능과 의미를 참고하는 것으로부터 시작해서 그런지 대부분 직설적이다. 용어의 어원을 검색하면 그 용어의 기능의 의미와도 비슷한 걸 확인할 수 있다.

 

프로젝트 올리기

1. 깃 설치를 할 때 같이 받았던 Git Bash(리눅스 기반의 Terminal) 열기.

 

2. 깃헙에 올릴 프로젝트가 있는 폴더로 들어간다.

 

※ Github을 사용하는데 처음이면 먼저 github에 자신의 계정을 연결시켜야한다. 

    git config --global user.name "github유저 이름"

    git config --global user.email "github계정 이메일" 명령어를 통해 연결!

    보통 자신 컴퓨터 계정폴더가 기본폴더니 cd [폴더 이름]을 통해 프로젝트 폴더로 들가면 된다.

   현재 위치된 폴더에서 한 단계 나오는건 cd .. 명령어다.

 

3. git init 명령어를 친다.

- git init 명령어는 깃 저장소를 만들거나 초기화한다. init이라고 해서 in = 들어간다! 이런 느낌인줄 알았는데 init자체가 initialize(초기화하다)에서 따온 것이였다. 현재 디렉토리를 로컬 깃 저장소라고 컴퓨터에게 말해주는 역할을 한다. 깃헙에 올라갈 준비 태세!

 

4. git add [파일이름] or [폴더 이름] 보통 git add . (모든 파일 저장)명령어를 친다.

-  새로운 파일(프로젝트)을 추가하거나 존재하는 파일을 스테이징한다. 여기서 staging이란 작업공간에서 변경이 발생한 파일을 다음 커밋에 포함되도록 예약하는 것을 말한다.  추적되는 파일은 Stage Area에 들어가 있게 된다!

 

5. git commit -m "작업내용(간략하게 쓴다)" 

- 드디어 commit 명령어가 나왔다! 커밋을 추가하는 명령어인데 이것을 바탕으로 사용자는 홍길동처럼 시간을 이동할 수 있다! 현재 원격 저장소로 반영될 준비 태세!

 

6. git remote 명령어를 친다.

그러면 아무것도 안나올 것이다. 왜냐하면 아직 현 프로젝트를 위한 저장소(repository)를 만들지 않았기 때문이다. github.com에 들어가서 자신의 계정으로 들어가면 왼쪽 상단에 Repositories 옆에 New라는 초록색 버튼이 있다. 

이 버튼을 클릭하면 밑에 화면으로 이동한다.

여기서 프로젝트를 설명하는 Repository name을 적고

밑에 있는 초록색 Create Repository 버튼을 누른다. 그러면 저장소 생성!

 

그러면 중앙에 있는 저장소의 주소를 복사하여 

git remote add origin [저장소주소]( ex)https://github.com/Donghwa96/firstcommit-.git)을 입력하면 된다.

그러면 연결 완료! ( [ ] 이거 치면 안된다!)

프로그래밍을 처음 배운 단체가 멋쟁이 사자처럼이라는 프로그래밍 교육 단체였는데 처음에는 수동적으로 배우다 보니까 집에 와서 remote add origin 저장소주소를 했는데 계속 "저장소는 이미 만들어져있다" 이 말만 반복되어서 구글링해서 찾아봐도 지웠다 뭐했다를 했는데 도돌이표였다. 원인은 repository도 안 만들고 github에 올릴 생각을 한 것이였다. 학교에서 오프라인 강의를 들으면서 repository를 만든 기억은 없고 git 명령어는 어느 새 노트북에 정리되어있고 하다보니 git bash에 명령어만 쳤었는데.. 하하하하 디버깅아닌 디버깅을 한 거지만 초반에는 그런 해프닝도 있었다. 갑자기 생각이 난다.. 

 

7. 마지막 git push origin master 명령어를 통해 Github 원격 저장소에 프로젝트를 올리면 끝!

- 원격 저장소에 내 로컬 저장소를 올리는 것! 

 

다른 Git 명령어들

git branch

- 자신의 Git 프로젝트에 가지(branch)가 쳐져 있는지 확인하는 명령어. 처음에는 master밖에 없을 것이다. 협업할 때 기본 베이스를 master(뿌리)에다가 저장하고 나머지 기능을 따로 만들고 싶을 때 브랜치를 따서 작업한다라고 보통 말한다. 브랜치를 따고 싶으면 git branch [브랜치이름]을 치면 된다.

git checkout [브랜치 이름]

- 현재 위치하지 않은 저장소를 체크아웃해 들여다 보고 싶은 브랜치에 들어가는 명령어다. 

git pull origin [현재 브랜치 이름]

- 로컬 컴퓨터로 작업하고 있을 때 원격 저장소에 있는 최신 버전을 원하면 이 명령어로 불러 올 수 있다. 

git merge

- branch를 따서 완료했던 작업이 master에 추가가 되면 괜찮겠다 싶으면 master브랜치로 합병(merge)해서 모든 변경사항을 master에 추가하는 명령어다.

git log

- 커밋할 때 작성했던 작업내용과 커밋을 한 날짜를 통해 변경사항을 보여주는 명령어.

 

 

 

 

보통 개발을 한다고 하면 GitHub을 모르면 간첩일 정도로 많이 쓰이고 있다. 실무에서도 혼자하는 프로젝트는 거의 없기 때문에 Git을 잘아는 것이 회사에서도 중요하다. 그리고 Github에 있는 코드를 보고 회사에서 면접을 보는 경우도 많아서 매우 중요한 부분이라고 생각해서 이 글을 쓰게 되었다.

개발활동은 거의 없을 것이지만 멋사활동을 하면서 가장 찜찜한 부분이여서 이렇게 정리하게 되었다.

 

 

출처 : https://nolboo.kim/blog/2013/10/06/github-for-beginner/

 

완전 초보를 위한 깃허브

원문 : 1. GitHub For Beginners: Don’t Get Scared, Get Started 2. GitHub For Beginners: Commit, Push And Go [중략] 깃의 필요성 등에 대해 역설함. 컴퓨터를 사용하는 모든 지식 근로자는 깃허브를 사용할 이유가 있다. 만약, 당신이 깃허브 사용법을 이해하는 것을 포기했다면, 이 글은 당신을 위한 것이다. 깃허브에 대한 중 주된 오해 중 하나는 그것이 컴퓨터 언어나 컴파일러나 마

nolboo.kim

출처 : http://blog.naver.com/PostView.nhn?blogId=soorte1&logNo=220896087480&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

'Base가 되는 정보들' 카테고리의 다른 글

Description for Category  (0) 2019.10.08