일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발 뭐하지
- string
- 스프링 OAuth
- 스프링
- 백엔드 개발자 뭐해?
- Java
- Spring
- 다리를 지나는 트럭
- git hub
- 인스타그램만들기
- @RestCotroller
- 예외처리
- springboot
- 백엔드
- 입력
- 스프링부트
- 프로그래머스
- RESTful웹서비스
- RESTful
- 리눅스 서버시간 변경
- Scanner
- 개발자
- BufferedReader
- 서비스 계층
- 깃허브
- Git
- 클론코딩
- .ppk만들기
- 깃
- 인텔리제이
- Today
- Total
It's Ward
[Git Hub] - Git 설치방법 및 Git hub 연동(2) 본문
layout: post
title: "Git 기본 사용방법 - Git Getting started"
date: 2022-05-03 22:47:08 +0900
categories: git
3. GitHub 사용 방법
3.1 GitHub 연동 -SSH키 만들기
우리는 지금까지 Git을 설치하고, 간단하게 버전관리하는 방법을 알아봤습니다.
이번에는 다양한 협업 기능을 제공하는 GitHub를 연동하여 사용하는 방법에 대해 알아보겠습니다.
GitHub를 사용하려면 **SSH 키** 를 먼저 등록해야 합니다.
SSH 키란? 안전한 셸(Secure SHell) 로 CLI(Command Line Interface)에서 다른 PC 혹은 서버에 연결하기 위한 인증 방법입니다.
사용자, 패스워드 등 다양한 인증방법을 지원하지만, 편리성, 안정성 면에서 추천하는 방법은 공개키 인증 방식 입니다.
공개키 인증 방식을 사용하려면 공개키와 개인키를 한 쌍을 만들어 공개키를 서버에 미리 등록해두면, 사용자는 개인키를 통해 SSH에 접속하고 공개키에 일치하는 부분이 있으면 인증에 성공하여 서버에 접속되는 방식입니다.
ssh-keygen
명령어를 이용해 ssh key를 생성합니다.
먼저 저장할 위치를 물어봅니다. `Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/유저이름/.ssh/id_rsa):`
기본값을 사용하기위해 그냥 Enter키를 눌러 다음으로 넘어갑니다.
다음으로는 SSH 추가 Password를 지정할 것인지 물어봅니다. 추가 패스워드는 나중에 지정할 수 있으므로 우선 Enter를 두 번 눌러 키를 생성합니다.합니다.
생성된 ssh키는
개인키(Private Key) id_rsa
와
공개키(Secret Key) id_rsa.pub
두개를 생성합니다.
개인키(Private Key) 는 절대 외부에 공개되면 안되는 키입니다.
생성된 키 중 공개키(Secret Key)를 복사하여 자신의 GitHub에 등록합니다.
cat ~/.ssh/id_rsa.pub
화면에 출력된 키(ssh-rsa ~~ 컴퓨터 이름)를 마우스로 드래그하여 복사합니다.
복사하는 방법은 다음과 같습니다.
- 마우스 우클릭 - 복사(Copy)
- 키보드 복사
> _(windows CMD 또는 터미널 등)Ctrl
+C
> _(git bash)Ctrl
+Insert
> *(MacOS)Command
+C
메모장에 붙여넣기하여 복사가 잘 되었는 지 확인후, github에 공개키를 등록합니다.
3.2 GitHub 연동 - 공개키를 GitHub 계정에 등록하기
Git Hub로 이동해 SSH Key를 등록합니다.
Title에는 사용자 임의로 제목을 입력합니다.
Key에는 이전에 복사한 공개키(Secret Key) 를 붙혀넣기 한 후 Add SSH key를 눌러 등록합니다.
정상적으로 등록된 경우 아래 사진처럼 추가됩니다.
SSH 키가 정상적으로 등록되었는 지 확인하기 위해 원격 저장소(Remote Repository)에서 자신의 로컬 저장소(Local Repository)로 복제가된다면, 정상적으로 연결이 된겁니다.
원격 저장소 복제(Clone) 혹은 공개키를 GitHub 계정에 등록하기를 실패했을경우, SSH키를 계정에 등록하였는데도 안되는경우를 클릭하여 확인해보세요.
3.3 GitHub 에서 원격 저장소(Remote Repository) 만들기
Github는 원격에서 Git 저장소(Repository) 를 호스팅 해주는 서비스입니다. GitHub에서는 GUI환경의 웹에서 원격 저장소(Remote Repository) 를 간단하게 생성하고 관리할 수 있습니다.
GitHub를 맨처음 로그인 하게되면 다음과 같은 웹페이지가 나옵니다.
원격 저장소(Remote Repository) 를 만들기위해
- GitHub에 로그인되어있다면 여기를 클릭하세요.
- 혹은 GitHub 메인 홈페이지의 New를 누릅니다.
사용할 **원격 저장소의 이름(Repository name)** 을 입력합니다.
개발 언어 혹은 환경마다 통상적으로 사용하는 규칙 혹은 스타일이 있습니다.
>여기에 자세하게 나와있으며
stack overflow 답변을 참조하세요.
해당 저장소(Repository) 의 간단한 설명을 입력합니다.
공개 여부를 선택합니다.
Public : 전체 공개
Private : 선택적 공개
저장소(Repository) 초기화 입니다. 모두 선택 후 Create repository를 눌러 저장소를 새로 제작합니다.
Add a README file : 해당 저장소(Repository) 에 대한 자세한 설명이나 사용 방법에 대해 서술하는 파일을 만듭니다.
Add .gitignore : 지정한 확장자 파일을 무시합니다. (Git 버전 관리에서 제외할 파일 목록을 지정하는 파일 지정)
Choose a license : 라이센스를 선택합니다. (자세한 내용은 여기를 확인하세요)
3.4 GitHub 원격 저장소(Remote Repository) 복제(Clone)하기
clone
명령어는 원격 저장소(Remote Repository) 에 있는 소스코드나 프로젝트들을 복사하여 로컬 저장소(Local Repository) 로 가지고오고 싶을 때(복제), 사용하는 명령어 입니다.
먼저 복제(Clone) 하려는 원격 저장소(Remote Repository) 에 접속합니다.
저는 여러분들이 지금 읽고 있는 이 저장소(Repository)[https://github.com/ItsWard/GitHub-getting-started] 를 이용해 예제를 들겠습니다.
Git과 GitHub가 어떤 방식으로 연결되었는지(SSH 인증방식/HTTP 인증방식)에 따라 해당 하는 인증방식을 선택 후 주소를 복사하여 git clone
명령어를 입력합니다.
SSH 인증방식의 경우
git clone git@github.com:ItsWard/GitHub-getting-started.
HTTPS 인증방식의 경우
git clone https://github.com/ItsWard/GitHub-getting-started.git
git bash 붙혀넣기
Shift
+Insert
사용자가 등록한 SSH키와 복사하려는 저장소(Remote Repository) 의 이름이 다른경우This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
와 같이 나오게되는데, yes
를 입력합니다.
정상적으로 복제가 완료되었다면 ls 명령어를 이용해 확인이 가능합니다.
혹은 해당 폴더에 들어가면 저장소(Repository) 가 복제 되어있는 것을 볼 수 있습니다.
3.5 GitHub 원격 저장소(Remote Repository)에 push 하기
push
는 로컬 저장소(Local Repository) 에 commit
되어있는 파일을 원격 저장소(Remote Repository) 에 업로드하는것으로 이해해주시면 편합니다.
push
전 알고 넘어가야 할 용어에 대해 소개합니다.
origin
: 원격 저장소(Remote Repository) 의 단축이름
Git에서 해당 저장소(Repository) 인 GitHub-getting-started 대신 origin으로 사용가능
ex)git push origin main
=git push GitHub-getting-started main
한번이라도init
하거나clone
하는경우 자동으로 origin에 원격 저장소(Remote Repository) 의 이름이 저장된다고 생각하면 됩니다.
우리는 2.6 Git 맛보기 에서 로컬 저장소(Local Repository) 에 commit
하는 것 까지 진행했습니다.push
는 commit
된 로컬 저장소(Local Repository) 를 원격 저장소(Remote Repository) 에 업데이트해 주는 기능입니다.
준비사항 : 로컬 저장소, 원격 저장소
간단한 테스트를 위해
임의의 작업공간(Work Space) 에 README.md 파일을 하나 제작하였습니다.
README.md 파일은 .txt 파일을 하나 만들고, 확장자를 .md로 변경하였습니다.
작업공간(Work Space) 폴더 명 : be-simple-git-push-test
테스트 파일 : README.md
README.md 파일을 텍스트 뷰어로 열어, 다음과 같이 수정한 후 저장합니다.
해당 폴더에서 마우스 우클릭 - Git Bash Here 을 클릭해 Git Bash창을 하나 열어주세요.
먼저 해당 작업공간(Work Space) 를 로컬 저장소(Local Repository) 로 만들기 위해 git init
를 입력합니다.
git init
정상적으로 init
가 진행되었다면 .git 폴더가 생성된 것을 확인 할 수 있습니다.
commit
을 위해 README.md 파일을 add
해주세요.
(조금 어려운 내용이지만, add
는 commit
을 하기위해 untracking 상태의 파일을 staging area로 올리는것을 말합니다. 아직 이해하지 않으셔도 괜찮습니다.)
git add README.md
정상적으로 파일이 add
되었는 지 확인하기 위해 git status
명령어를 이용해 확인합니다.
git status
아래 사진과 같이 Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: README.md
나와있다면 정상적으로 add
되어있는 상태입니다.
해당 내용을 commit
합니다.
git commit -m "test ver1"
git log
를 통해 정상적으로 저장되어있음을 확인할 수 있습니다.
git log
이제 GitHub 저장소(Repository) 에 해당 프로젝트를 push
해보겠습니다.
먼저 GitHub에서 원격 저장소(Remote Repository) 를 생성합니다. GitHub저장소 생성방법
저장소(Repository) 주소는 다음과 같이 설정합니다. https://github.com/<GitHub유저이름>/<프로젝트이름>.git
저의 GitHub 유저이름은 ItsWard
이고, 작업공간 이름이 be-simple-git-push-test
이므로 https://github.com/ItsWard/be-simple-git-push-test.git
으로 제작하겠습니다.
생성한 저장소(Repository) 의 자신의 인증방법에 맞는 주소를 복사합니다.
HTTPS
git remote add origin <HTTPS/SSH 주소>
정상적으로 origin
설정이 되었는지 확인합니다. 설정이 정상적으로 나온다면, push
명령어를 통해 원격 저장소(Remote Repository) 를 생성하고, 프로젝트를 저장합니다.
git push origin main
git remote -v
GitHub 원격 저장소(Remote Repository) 를 새로고침해 정상적으로 push
되었는 지 확인합니다.
3.6 GitHub 원격 저장소(Remote Repository)에서 pull 하기
git pull
명령어는 원격 저장소(Remote Repository) 에 있는 프로젝트 내용을 가져와 현재 로컬 저장소(Local Repository) 와 병합하는 역할을 합니다.git clone
이 원격 저장소(Remote Repository) 에 있는 내용을 그대로 가져와 붙혀넣기되어 기존 작업물들이 사라져 직접 복구해야하는 반면, git pull
은 기존 작업물은 유지되면서 최신 코드로 업데이트가 가능합니다.
다른사람이 가져오려는 GitHub의 코드를 업데이트 하거나 GitHub를 통해 직접 Commit 했을 경우, 내용을 클라이언트로 내려받을 때 유용하게 사용됩니다.
테스트환경을 만들기 위해 3.5 GitHub 원격 저장소(Remote Repository)에 push 하기 에서 사용했었던 저장소(Repository) 내의 README.md 파일을 수정한 후 커밋해보겠습니다.
README.md 우측의 연필모양을 눌러 파일을 수정합니다.
다음과 같이 PULL 테스트 입니다라고 작성한 후, 메모는 test ver2로 입력 후 ```commit``` 합니다.
해당하는 로컬 저장소(Local Repository) 로 이동하여 마우스 우클릭 - Git Bash Here 을 클릭해 Git Bash창을 하나 열어주세요.
git pull
명령어를 통해 로컬 저장소(Local Repository) 에 변경사항을 추가하여 병합합니다.
git pull origin main
내용이 추가된것을 확인 할 수 있습니다.
3.7 GitHub 게시물 가져오기(Fork)
Fork
는 원격 저장소(Remote Repository) 에 있는 소스코드나 프로젝트들을 복사하여 내 GitHub의 원격 저장소(Remote Repository) 로 복제하고 싶을 때, 사용하는 기능입니다.
SSH키를 계정에 등록하였는데도 안되는경우
(공통)SSH키 재설정
- Github - Settings - SSH keys 에 등록한 공개키 삭제합니다.
- 프롬프트에 cat ~/.ssh/id_rsa.pub 명령어를 입력하여 나타나는 공개키를 다시 복사합니다.
- Github - Settings - SSH keys 에서 New SSH key 버튼 클릭합니다.
- Title을 입력하고, 복사한 공개키를 Key에 붙여 넣고 Enter 키를 입력해 한 줄을 추가(개행)
- Add SSH key 버튼을 클릭하고, 승인하여 공개키를 등록
GitHub CLI 설치(Windows) - HTTPS 인증
여기에서 github cli를 다운로드합니다.
다음과 같이 설치합니다.
gh --version
명령어를 입력했을 때 다음과 같이 버전이 확인되면 정상적으로 설치된 것입니다.
gh --version
winpty gh auth login
명령어를 입력해 로그인을 시도합니다.
winpty gh auth login
macOS 환경
brew install gh
명령어를 이용해 GitHub CLI를 설치합니다.
brew install gh
gh --version
명령어를 입력했을 때 다음과 같이 버전이 확인되면 정상적으로 설치된 것입니다.
gh --version
gh auth login
명령어를 입력해 로그인을 시도합니다.
gh auth login
Git CLI을 이용한 인증과정 진행
방향키와 Enter를 이용하여 git Bash 혹은 터미널 창에서 선택할 수 있습니다. ? What account do you want to log into?
-> GitHub.com
을 선택합니다.
SSH
로 인증을 실패하였으므로 HTTPS
를 선택해 인증을 진행합니다.
? What is your preferred protocol for Git operations? -> HTTPS
Git허브 인증으로 Git을 인증할건지를 선택합니다. ? Authenticate Git with your GitHub credentials?
-> Y
GitHub 로그인 방법을 선택합니다. ? How would you like to authenticate GitHub CLI?
->Login with a web browser
Enter를 누르지 말고 ! First copy your one-time code
를 미리 메모장에 복사해 둡니다. 이후 Enter를 누르면 GitHub 인증코드 입력 페이지가 나옵니다.
Authorize GitHub 를 클릭하여 Git과 GitHub를 연동합니다.
연동이 완료되었으면 Git과 GitHub에서 연결완료가 되었다고 나옵니다.
ls
명령어로 정상적으로 복제(clone) 한 것을 확인할 수 있고
혹은 폴더에서 정상적으로 복제(clone) 한 것을 확인할 수 있습니다.
Git 기본 브랜치 master 에서 main으로 변경하기
위에서 언급한 내용이지만, 설치 시 Git Repository 설정을 master로 한 경우 main으로 변경할 수 있는 방법을 공유드립니다.
git init
를 진행하면 해당 폴더가 자동으로master
로 지정이 되나, 2020 10월 이후로 국제사회에서 master/slave, blacklist/whitelist 등 변경하는 운동이 많아짐에 따라 GitHub에서는master
를main
으로 변경되었습니다. 자세한 내용은 여기를 참조하세요.
Local만 사용할 경우 문제가 없지만, GitHub를 연동 하는 경우 우리가 사용하는 Branch도 main으로 변경하여야지만 정상적으로 GitHub에 업로드가 가능합니다.
git config --global init.defaultBranch main
해당 설정 이후 init
혹은 clone
으로 생성된 브랜치는 main
으로 변경됩니다.
다만 이전 master
로 되어있는 브랜치는 수동으로 main
으로 변경 하여야 합니다.
git branch -M main
번외1. 기타 사이트 모음
Git Tip모음 - Integerous님 GitHub
GitHub Wiki TOC generator
GitHub 이모티콘 모음
마크다운 markdown 작성법
Git 이름 스타일 가이드
매력적인 깃허브 프로필을 만들어보아요
InteliJ 깃허브 연결
좋은 git 커밋 메시지를 작성하기 위한 7가지 약속
Truble Shooting
가입 시 이메일 주소를 잘못 입력하였을 경우
만약 가입할 때, 이메일 주소를 잘못 입력하였을 경우, 이메일 인증 과정을 진행 할 수 없습니다. 이 경우 Update your email address에 클릭합니다.
Add email address에 해당 이메일을 다시 입력한 후 Unverified - Resend Verification email을 클릭하여 인증을 다시 진행해주세요.
이후 잘못된 이메일은 우측 상단 쓰레기통 메뉴를 눌러 제거합니다.
Reference
코드스테이츠
🎥Git으로 시작하는 협업 및 오픈소스 프로젝트 - 동빈나님
어떻게 깃을 사용하는지 빠르게 알아봅시다.
깃허브(GitHub)란? - 서스포PAR_개발블로그
GITHUB입문 Git 설치하기 - 코딩의행복블로그
Git허브 브랜치 - 베르의 게임 개발 유튜브
[Windows 10] Git 최신 버전 설치 및 사용 방법 - LainyZine: 프로그래머 가이드
GitHub Git 브랜치의 종류 및 사용법 (5가지) -HeeJeong Kwon님의 블로그
누구나 쉽게 이해할 수 있는 Git 입문
'기타 > Git Hub' 카테고리의 다른 글
[Git Hub] - Git 설치 방법 및 Git Hub 연동(1) (0) | 2022.05.26 |
---|---|
[Git Hub] Git Hub & Git - Git Getting started (0) | 2022.05.26 |