Github 에서 Git 사용법 (간단설명)
GitHub
- 계정(이-메일) » 저장소명 » 프로젝트명 설정
- account » repository » project
- 초기 설정: Initialize with
- public/private 결정
- README.md 작성 (선택사항)
- .gitignore: ex. R (선택사항)
- license: ex. MIT (선택사항)
- 저장소 주소를 복사: copy the repository URL or SSH
- 리눅스는 URL 방식 불허 » SSH 방식 이용함
설치
$ sudo apt install git
- Window 에서는 아래 세 개 관리프로그램 가운데 하나 사용
-
위 두 개는 리눅스처럼 bash 명령어($ 커서에서 작동) 이용
GitHub 에 파일 올리기
먼저 깃허브 원격접속 수정하려면 인증수단 마련
-
기본적으로 HTTPS 방식과 SSH 방식이 있다
-
WSL 사용자는 SSH 방식이 좋을 것으로 판단한다
SSH 방법
1) 개인 리눅스 쉘에서 SSH 키를 생성/등록
$ cd
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd .ssh
$ ssh-keygen -t rsa -b 4096 -C "메일 주소 입력"
-
명령 옵션 내용
-
-t : 키 유형을 지정 : 여기서는 rsa
-
-b : 비트수 : 지정하지 않는 경우 rsa 디폴트는 3072비트(4096은 2의 12승)
-
-C : 코멘트 : 공개키 내용 마지막 부분에 적히게 됨
-
-
명령 결과로 암호입력을 요구받고 암호입력
- 그러면 저장위치와 key fingerprint 와 randomart image 표시됨
-
ls -l
명령으로id_rsa
및id_rsa.pub
두 파일 생성 확인-
id_rsa
는 개인키이므로 절대적으로 보안에 유의할 것 -
id_rsa.pub
는 공개키이므로 화면 출력해 내용을 복사해 둠-
공개키 내용은
cat ~/.ssh/id_rsa.pub
등으로 확인 가능 -
내용은
ssh-rsa
로 시작해본인 메일 주소
로 끝난다
-
-
-
이제
ssh-add ~/.ssh/id_rsa
명령으로 개인키를 SSH-Agent에 등록 -
만약 이미 가지고 있다면 기존의 것을 이용하면 된다
- 일반적으로
~/.ssh
경로에 위치
- 일반적으로
2) 깃허브에 공개키 등록
-
깃허브 개인계정 표시에서
-
Settings » SSH and GPG keys » New SSH key
-
Title : 키 이름 기억나기 좋게 아무렇게나 명명
-
Key 부분에 공개키 문자내용을 복사-붙여넣기
-
박스 하단에 Add SSH key 클릭
-
-
그러면 SSH keys 창에 내가 명명한 키들이 등록된 내용이 보임
-
-
깃허브 Clone or download 부분에서 접근방식 변경
-
기본 설정으로 Clone with HTTPS 로 되어 있는데
-
이를 Use SSH 로 수정하고 그 저장소 주소를 복사해 둠
-
3) 내 리눅스 환경으로 돌아와서 저장소 주소를 추가함
$ git remote add origin git@github.com:*****.git
-
원격저장소 이름이
origin
으로 표시됨 -
git remote -v
명령으로 origin 저장소가 등록된 것을 확인
깃허브 이용을 위한 환경 설정
- First, we need to configure our Git environment
$ git config --global user.name "yourName"
$ git config --global user.email "yourEmail"
$ git config --list
- 프로젝트(디렉토리)별로 다르게 하고 싶으면
- 글로벌옵션(
--global
) 생략 - 디렉토리별 설정이 우선적으로 적용됨
- 글로벌옵션(
깃 명령은 3단계로 구성
Git requires three steps
1) add 2) commit 3) push
$ git init
$ git add READE.md
$ git status # commit 대상 변경사항(생성/수정/삭제) 정보 확인
- READ.me 파일을 예로 든 것임
- 모든 문서작성 작업은
- GitHub 원격저장소에서 직접 할 수도 있음
- 그러나 복잡한 작업은 번거롭기도 하거니와
- 로컬과 원격 각각 수정하면 충돌 나서 수동 해결 필요
- 되도록 로컬 작업 후 합치는 것이 바람직
$ git commit -m "my commit message"
$ git branch -M main
$ git remote add origin {Git_URL}
$ git remote -v # 원격저장소 등록현황 조회
$ git push -u origin main
commit
옵션-m
또는--message
의미는 commit messagebranch
옵션-M
의미는 move/rename a branch, even if target existspush
옵션-u
또는--set-upstream
의미는 set upstream for git pull/status
에러 등 예외사항 처리
- 병합시 에러 날 때:
$ git checkout main $ git merge {mybranch}
- 또는 git pull 시 stash 또는 merge 를 우선 하라고 나올 때:
- 출처
- 중요하지 않은 경우는 다음과 같이 덮어쓰기 하는 것이 빠르다.
다음 내용은 원격저장소 내용으로 로컬 저장소를 덮어 쓰는 효과가 난다.
먼저 로컬 저장소를 백업해 두는 것이 좋겠다
- 로컬 브랜치를 하나 더 만드는 것이 가장 편리하겠다
$ git branch <적당한 브랜치 이름>
- 원래 브랜치(master)로 돌아와 아래 내용 진행
$ git fetch --all # 내용 업데이트 $ git reset --hard origin/master # 강제 덮어쓰기 $ git pull # 확인해 본다
만약 로컬 저장소 내용으로 원격(깃헛) 저장소를 덮어 쓰고 싶다면
$ git push -f <remote> <branch>
- 예:
git push -f origin mybranch