본문 바로가기

국비지원_핀테크

2일차_ Git, GitHub 연동 방법

GitHub 란?

  • 분산 버전 관리 툴인  저장소 호스팅을 지원하는 웹 서비스이다.
  • 이 텍스트 명령어 입력 방식인데 반해, 깃허브는 그래픽 유저 인터페이스(GUI)를 제공한다.
  • 깃허브는 페이스트빈(pastebin)과 유사한 서비스인 기스트(Gist)와 위키를 각 저장소마다 운영하고 있으며, 깃 저장소를 통해 고칠 수 있다.

 

 

Git 과 GitHub 의 HTTPS를 사용한 연동방법

 

1. GitHub 회원가입

 

2. GitHub에 Repository 생성

 

3. Git 과 GitHub 가 연동되어 있는지 확인

현재 연동된 것이 없으니 아무것도 출력되지 않음

 

4. 원격지 연결 후 확인

GitHub 의 repository 주소로 원격지 연결 후 원격지를 확인 ( 원격지 주소를 test123 이라는 별칭으로 사용하겠다는 뜻 )

 

5. 원격지 삭제 방법

remote rm 을 사용하여 삭제 후 확인 ( 원격지 별칭으로 삭제 )

 

6. 원격지를 origin 이라는 별칭으로 등록

깃허브에서 HTTPS 주소를 확인
origin 이라는 별칭을 주로 사용하기 때문에 test123을 삭제하고 origin 으로 설정 및 원격지 등록

 

7. 파일 생성 후 git 에 등록

git add --all 옵션으로 해당 디렉토리의 모든 내용을 git 에 등록

 

8. 커밋

커밋 이후 vi 창이 나오게 되는데 이때, 커밋 메세지를 vi 에 남긴 후 저장하면 된다, 만약 커밋시 -m 옵션을 사용한다면 간편하게 메세지를 남길 수 있다

 

9. git 상태와 로그 확인

git log --oneline 옵션으로 한줄로 간략하게 확인 가능

 

10. git 에 등록된 내용을 GitHub 에 푸쉬 및 오류

최초로 깃허브에 푸쉬할땐 -u 옵션을 사용해야 한다, 뒤에 origin은 origin 이라는 별칭의 레포지토리 주소로 푸쉬한다는 뜻 ( 403 에러는 학원 pc에 기존에 사용하던 계정이 등록되어 있기 때문, 자격 증명 관리자 - Windows 자격 증명 - 일반 자격 증명 목록에 등록된 깃허브 계정을 삭제해주면 된다. )

※ 깃허브에 최초 푸쉬할때 -u 옵션을 사용해야 하는 부분은 꼭 기억하기 ※

 

11. 푸쉬 및 확인

정상적으로 푸쉬가 진행되면 깃허브 로그인 창이 출력되며 로그인 하게 되면 정상적으로 등록된 repository에 파일이 푸쉬된다.
git 상태와 로그 확인
푸쉬된 파일은 GitHub 에서 확인 가능

 

12. 연습

file02.txt 생성 및 git 에 등록, add 에 ./ 은 --all 옵션과 같은 의미
커밋 및 상태 확인 ( 커밋 시 메세지를 -m 옵션으로 작성할 때 공백이 없으면 " " 를 사용할 필요가 없음 )
원격지(origin) 에는 file01 까지 커밋되었음, 로컬(HEAD) 에는 file02 가 커밋되었음
원격지에 이미 파일을 한번 push 했기 때문에 커밋 시 -u 옵션을 사용하지 않아도 됨
원격지에 올라간 파일 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Git 과 GitHub 의 ssh를 사용한 연동방법

1. ssh 를 사용해보기 위해 repository 를 하나 새로 생성하였음

 

2. ssh 키 생성

ssh 키 생성위치 : /c/Users/user/.ssh/id_ed25519

 

3. ssh 키 확인 및 복사

퍼블릭 키(id_ed25519.pub) 파일을 열어서 확인 후 키 복사

 

4. 깃허브에 ssh 키 등록

우측 상단 내 프로필 아이콘 클릭 - settings - SSH and GPG keys - New SSH key 클릭
Title : 키 이름 입력, Key : 복사한 키 값 입력 후 Add SSH key 클릭

 

5. 새로운 폴더 생성 후 깃에 등록 및 원격지 등록

아까 원격지는 HTTPS 주소로 등록했다면 이번에는 SSH 주소로 등록한다

 

6. 파일 생성 후 커밋

test01.txt 파일 생성 후 git 에 커밋

 

7. 푸쉬 후 확인

새로 생성한 repository 에 최초 푸쉬이기 때문에 -u 옵션 붙여서 푸쉬, 푸쉬하고 계속 사용할건지 묻는 입력창에 yes 입력 후 엔터
푸쉬된 내용 git log 를 통해 확인 및 깃허브 웹에서 확인
깃허브 웹에서 파일 정상적으로 올라간 것 확인

 

8. 연습

파일 생성 및 깃에 커밋
로그 확인, 깃허브에 푸쉬, 로그 확인
깃허브에서 푸쉬된 파일 확인

 

 

 

 

 

 

 

 

 

.gitignore

- 깃, 깃허브에 파일을 커밋 또는 푸쉬할때 예외 파일을 설정하는 설정파일

( 깃에 파일을 전체 커밋하게 될때 .gitignore 를 생성하여 설정하면 커밋할 때 해당 파일이 올라가지 않음 )

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

※ 위 사이트에서 사용하는 개발 환경 및 프로그래밍 언어를 확인하여 ignore 파일로 미리 등록을 해야 설정파일이 커밋되지 않는다 ※

예를 들어 java를 검색하면 위와 같은 화면이 출력되는데 .gitignore 파일에 해당 내용을 넣어주면 된다

( *.class, *.log 등 와일드 카드를 사용하여 해당 확장자를 가진 설정파일을 모두 배제한다 )

 

 

 

 

 

.gitignore 사용법

 

1. 테스트용 파일 생성 및 .gitignore 파일 생성(숨김파일)

 

2. .gitignore 파일 vi 편집기로 열기

 

3. vi 편집기로 .gitignore 파일에 test03.txt 입력 ( i 혹은 o 로 입력 ) 후 저장 ( :wq )

 

4. git status 로 확인

git status 로 확인해보니 기존에 출력되던 test03.txt 가 출력되지 않음

 

5. git 에 등록되어 있는 파일 해제 후 .gitignore 파일로 등록

깃에 test04.txt 파일을 등록 후 .gitignore 파일을 vi 편집기를 사용하여 test04.txt 파일을 ignore 파일로로 등록해도 이미 파일이 선 등록 되어 있기 때문에 등록된 파일이 빠지지 않음 > 깃에 등록된 파일을 등록 해제하니 git status 로 상태를 확인하니 test04.txt 가 정상적으로 ignore 파일로 등록되었음

 

6. .gitignore 파일 내용 전부 삭제 후 확인

vi 편집기로 .gitignore 파일을 비웠음
이후에 등록되어 있던 test03.txt 파일과 test04.txt 파일 모두 정상적으로 올라오는 것 확인

 

 

 

 

 

 

 

 

 

 

 

 

깃에 한번에 커밋과 add 를 모두 진행하는 방법

-am 옵션을 사용해서 add 와 커밋을 동시에 진행 ( 최초 커밋 파일에는 사용 불가 )
abcd 파일을 커밋 ( -am 옵션을 사용하기 위해 )
abcd 파일을 한번 커밋한 이후 내용을 수정하면 -am 옵션을 사용하여 바로 add 와 커밋을 진행할 수 있다. > 이후에 깃허브에 푸쉬해야 함

 

 

 

 

 

 

 

 

 

 

깃에 add 된 파일을 모두 함께 커밋하는 방법

add로 추가한 파일들은 git commit 뒤에 파일명을 따로 지정하지 않으면 한꺼번에 커밋이 된다. > 이후 깃허브에 푸쉬해야 함

 

 

 

 

 

 

 

 

 

실습 예제

  • 1. GitHub 에 quiz02 repositories를 만드시오.
  • 2. 현재 위치 이전으로 가서 quiz02 폴더를 생성하고 test01, test02, test03 파일을 만들고 git add --all 까지 진행 후 test02 파일은 Staging Area 에서 제외시키고 test01, test03 을 commit 하고 push 까지 진행하시오. ( 배제된 test02 파일은  .gitignore 에 작성하여 배제 시켜준다 )
  • 3. 현재 위치에서 a, b, c 디렉터리를 만들고 각 디렉터리 아래 a/a.txt, b/b.txt, c/c.txt 파일을 생성하고 git add -all 명령을 진행한다. 이후 add 에 올라가 있는 b 디렉터리는 add에서 제외시킨 후 .gitignore를 이용해 깃 관리에서 배제 후 commit 을 하고 push 까지 진행한다. 결과는 GitHub 에 a, c 디렉터리만 올라가게 된다.
  • 4. 최종 GitHub 에 올라가는 내용은 test01, test03, a, c 만 올라가게 된다

 

 

1. quiz02 repositories 생성

New 클릭
repository 이름을 quiz02 로 생성

 

 

 

 

 

2. 예제 풀이

현재 위치 이전으로 이동
quiz02 디렉토리 생성 및 이동
test01, test02, test03 파일 생성
git 관리 디렉토리로 설정 및 원격지 등록된게 있는지 확인
원격지 등록 및 확인
.gitignore 파일 생성 및 vi 편집기로 편집
.gitignore 에 test02 파일 설정
.gitignore 파일에 test02 를 등록하여 status에서 나오지 않음
git add --all 로 test02 파일을 제외한 모든 파일 Staging Area 에 등록
git 에 커밋
GitHub 에 푸쉬하려 하였으나 최초 푸쉬에 -u 옵션을 사용하지 않아 푸쉬되지 않음, -u 옵션과 푸쉬될 원격지를 입력하여 푸쉬완료
git 상태와 로그 확인
GitHub 에 정상적으로 파일 푸쉬된 것 확인

 

 

 

 

 

3. 예제 풀이

현 위치 확인 후 디렉토리 생성 및 파일 생성
디렉토리 내부 파일생성 확인
git add --all 명령어로 모든 파일 Staging Area 로 등록
b 디렉토리를 add 에서 제외
.gitignore 파일에 b 디렉토리 등록
vi 로 b 디렉토리 .gitignore 파일에 등록 후 status 에서 b 디렉토리가 표시되지 않음
모든 파일이 이미 commit 된 적이 있으므로 -am 옵션 사용하여 한번에 add 와 commit 처리 후 확인

※ -am 옵션은 무조건 이미 한번이라도 commit 된 적이 있는 파일 및 디렉토리에만 사용 가능 ※

GitHub 에 모두 푸쉬
푸쉬된 내용 GitHub 에서 확인

 

728x90