[Github] 연동하기

1. Github 시작하기

보통 SI프로젝트에선 SVN을 많이 사용하지만, 개인 프로젝트나 자사 서비스를 운영하는 곳에선 대부분 코드 관리를 Git으로 진행한다.
SVN은 원격저장소밖에 없지만, Git은 DVCS로 코드 관리를 로컬저장소와 원격저장소 양쪽에서 관리할 수 있다는 장점이 있다. 또한 굳이 코드 관리용 서버를 구축할 필요 없이 Github를 사용하면 바로 원격 저장소를 사용할 수 있기 때문에 개발의 효율성이 높아진다.

제목을 클릭하면 사이트로 이동한다.

2. Github 회원가입

참고1) 가입 시 Username은 이름이 아니라 닉네임이라고 생각하면 된다.
참고2) 학교 계정이나 증명서를 통해 학생 인증받아 몇가지의 혜택을 제공받을 수 있다.

3. Github 설치하기



대부분 next를 하면되는데 이 부분에서는 Git을 사용할 기본 에디터를 선택한다.

4. Github 사용자 등록 및 확인

  • 윈도우 > Git Bash 로 이동
  • 등록
$git config --global user.name "이름"
$git config --global user.email "이메일"
  • 확인
$git config --list

5. Github 저장소 생성

  • 프로젝트 폴더 > 우클릭 "Git Bash" 실행
$git init

숨겨진 폴더로 .git이라는 폴더가 생성된다.

  • 파일 상태 확인
$git status


아직 커밋된 파일이 없음을 확인할 수 있다.

  • 파일 상태 2가지
  1. Untracked : 추적되지 않고 있는 파일, 즉 파일을 생성한 후 한번도 add 하지 않은 상태
  2. Tracked : 파일이 Git에 의해 변동사항이 추적되는 상태(staged / unmodified / modified)
  • 파일을 한번에 stage하는 명령어
$git add .

  • 변경사항 확정에 사용하는 명령어
$git commit -m "메모"

-m : 커밋메모 옵션

6. Remote Repository 생성 및 연결

  • Github 접속
  • Remote Repository 생성
    제목, 설명, 공개범위 등을 선택하여 만들어준다.
  • Remote Repository 연결

    ...or push an existing repository from the command line
$git remote add origin https://github.com/닉네임/제목

부분을 복붙해준다.
이때 ctrl+c,v가 먹히지 않는데 우클릭 paste를 해주면 된다.

  • 추가한 원격저장소 목록 확인(-v : 상세히)
$git remote

  • 로컬 저장소에 commit한 파일들을 원격 저장소에 추가
$git push -u origin master


push하면 이런 화면이 뜬다.
Github 들어가 확인하면 정상적으로 업로드된 파일들과 커밋하면서 작성한 메모가 저장되어 있다.

Git Bash를 사용하는 것 보다 Source Tree를 사용하여 간편하게 커밋하려고 한다.

7. Source Tree

  • Repository 추가하기
  • Commit

    확인을 위해서 임의의 파일 abc.txt 추가한다.

    Source Tree를 이용하여 커밋해준다.
    오른쪽 화면을 이용하여 파일 내용을 확인할 수 있고, 하단의 박스를 이용하여 커밋 메모를 저장할 수 있다.

    업로드된 파일명과 시간이 기록된다.

    세부 메모도 기록된다.
  • 원격저장소 팀원의 파일 내려받기
    git fetch 에서 하는 원격 저장소의 변경사항을 가져와서 지역브랜치에 합치는 작업(내려받기)
$git pull origin master

8.debug 기록

  • 기존 데이터가 손실이 있을 수 있어 git에서 진행이되지 않게 막하주는 오류이다.

    해결1) 절대 따라하지 마세요.
    아래 명령어로 업로드를 강제로 진행할 수 있다. 하지만 따라하지 말라는 언급처럼 기존 데이터 보장을 할 수 없다. 본인도 프로젝트를 날려먹었다. 테스트 프로젝트라서 다행이지 실제 프로젝트였으면 아찔했다.
$git push origin +master

해결2) 우선 원초적인 에러의 이유부터 잡자면 팀 프로젝트의 데이터들을 pull하지 않고 push부터 하려고해서 생긴것이다. pull을 진행하고 push할 수 있다.
해결3) 그래도 안된다면? 원격 저장소와 현재 로컬 저장소가 동기화되지 않았기 때문이다.
아래의 명령어로 동기화 시켜주면 된다.

$git pull --rebase origin master

좋은 웹페이지 즐겨찾기