✌ 깃허브 정리

서가희·2022년 3월 31일
0

개인정리

목록 보기
2/3
post-thumbnail

1. Git & GitHub 기본 개념


GitHub

분산 버전 관리 툴Git을 관리해주는 웹 호스팅 서비스

Git은 로컬 저장소(내 컴퓨터)와 원격 저장소(서버 컴퓨터)로 나뉨.
내 컴퓨터에서 작성한 프로젝트를 원격 저장소에 저장해두고, 만약 내 컴퓨터의 프로젝트가 손상되거나 다른 컴퓨터에서 코드를 가져오고 싶을 때는 원격 저장소에서 바로 가져올 수 있다. 이때, 코드 뿐만 아니라 코드의 변경 내역까지 모두 가져올 수 있기 때문에 Git이 "버전 관리 도구"라고 불림.

Git

  • 소스코드 및 파일의 변경내역을 저장하는 분산 버전 관리 시스템
  • 리누스 토발즈에 의해 처음 만들어짐.
  • GitHub, Bitbucket, Gitlab 등의 Git 기반 버전 관리 호스팅 서비스.

💌 정리

레파지토리 페이지에서 main으로 branch 바꾸고 save 시 swerving을 함.

👉 index.html은 기본


2. 버전 확인 및 초기 설정

다운 받은 Git 버전을 확인할 수 있음

$ git --version
git version 2.19.1

Git을 사용하기 위해 사용자 정보를 설정

$ git config --global user.name "hojun.lee"
$ git config --global user.email email@example.com

3. 저장소 만들기

  • 작업할 디렉토리를 만들고(mkdir) 생성한 디렉토리로 이동하기(cd)
    $ mkdir git-test
    $ cd git-test
  • 현재 디렉토리를 Git 저장소로 만들어 원하는 디렉토리를 기준으로 버전관리를 함.
    $ git init
    git init 을 입력하면 해당 폴더 기준으로 .git(로컬 저장소)가 생성. 로컬 저장소에는 버전 정보, 원격 저장소 주소가 저장.

💡 이때, 한 폴더에는 하나의 .git(로컬 저장소)을 가져야 합니다. 그렇지 않을 경우 충돌이 발생할 수 있음.

🙌 4. First commit!

4.1. 추가하고 컴밋하기(add, commit)

  • 파일을 생성(touch), 추가(add)하고 커밋(commit)하기
    • 아래 코드를 입력 및 실행하고, 이어 설명하도록 하겠습니다.
$ touch README.md
$ git add README.md
$ git commit -m "first commit"

4.1.1. git이 관리할 대상의 파일 등록하기(add)

변경한 파일 목록 중 스테이지에 올리기 원하는 파일만 선택합니다. 파일 전체를 올리고 싶은 경우에는 git add 뒤에 .을 입력합니다(git add .). 이 때, 스페이스 바가 한 칸 들어간 다는 점을 잊지마세요!

$ git add README.md // 지정 파일 올리기
$ git add . // 파일 전체 올리기

💡 Untracked → Unmodified → Modefied → Staged
|—————— git add ———————→|
| ←——— git commit ——|

(각각 상태에 대한 상세 설명은 5.2 챕터에 있습니다.)

4.1.2. 버전 만들기 (commit)

$ git commit -m "저장 메세지를 입력해주세요"

4.2. 상태 확인하는 방법 (status , diff , log)

4.2.1. 파일 상태 확인하기 (status)

$ git status


파일의 상태에 따라 Untracked 와 Tracked 로 분류됩니다.

1) Untracked(관리 대상이 아님) : 파일 생성 후 한번도 git add하지 않은 상태

2) Tracked(관리 대상임) : git이 관리하는 파일임을 의미.

  • Unmodified : 최근의 커밋과 비교했을 때 바뀐 내용이 없는 상태
  • Modified : 최근 커밋과 비교했을 때 바뀐 내용이 있는 상태
  • Staged : 파일이 수정되고 나서 스테이지 공간에 올라와 있는 상태이며, git add 후의 상태

4.2.2. 변경사항 확인하기 (diff)

최근 commit한 내용과 현재 폴더의 변경 사항을 확인할 수 있음.

$ git diff

4.2.3. 커밋(commit) 히스토리 조회하기 (log)

$ git log

위와 같이 git log 명령어를 입력하면, 최근 커밋한 히스토리를 확인할 수 있음.

4.3. 저장소에 무시할 파일 설정하는 방법

4.3.1. 무시할 파일 (gitignore) 추가 하기

1) .gitignore 사용하기

push 전 .gitignore 파일에 버전 관리에서 제외할 파일을 추가.

# a comment - 이 줄은 무시한다.
# 확장자가 .a인 파일 무시
*.a
# 윗 줄에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않는다.
!lib.a
# 루트 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않는다.
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시한다.
build/
# `doc/notes.txt`같은 파일은 무시하고 doc/server/arch.txt같은 파일은 무시하지 않는다.
doc/*.txt
# `doc` 디렉토리 아래의 모든 .txt 파일을 무시한다.
doc/**/*.txt

2) .gitignore 자동 생성기 활용하기

.gitignore 파일을 직접 생성해야 하는 경우가 종종 있음. 이 때, 라이브러리와 프레임워크를 사용하는 경우에는 어떤 파일을 깃 버전 관리에서 제외 시켜야 하는지(.gitignore파일에 넣어야 되는지) 헷갈리는 경우가 있음.이럴 때 편하게 사용할 수 있는 툴인 gitingnore.io 사용

  • .gitignore 사용 방법 1) 위 링크에 접속 후 본인의 프로젝트에서 사용하는 운영체제, 개발 환경, 기술 스택을 작성합니다. 2) 생성 버튼을 눌러 내용을 생성한 후, 전체 내용을 복사하고 .gitignore 파일에 추가합니다.

👀 GitHub CLI 사용

1. git clone

  • 원격 저장소의 코드를 컴퓨터에 받아올 수 있습니다. 새 작업 디렉토리 만들고(mkdir 명령어) 생성한 디렉토리로 이동(cd 명령어)
     $ mkdir filename
     $ cd filename
     $ git clone https://github.com/id/clone-filename.git .

    .을 붙이면 컴퓨터 현재 위치에 파일이 아닌 파일 안의 내용들을 가지고 온다

clone 하기 전

clone 한 후

💡 클론 시 점(.)을 찍는 이유는 현재 폴더에 클론 받기 위해서 입니다. 만약, 점(.)을 찍지 않을 경우 새 폴더를 생성합니다.

2. git pull

원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용

$ git pull origin main

pull 하기 전

pull 한 후

3. git add, git commit, git push

3.1 git add, git commit, git push

이미지 파일을 다운로드 받은 곳에 올리고 아래 명령어를 입력

  • 권한이 주어진 경우에는 소스코드 수정 후 커밋과 푸시하기
    $ git status
    $ git add .
    $ git commit -m "추가 작업 내역입니다."
    $ git push origin main

push가 완료되면 GitHub에 잘 올라갔는지 확인. push를 하게 되면 로컬 저장소에 있는 소스코드 또는 파일들이 GitHub에 올라가게 됨.

GUI 환경에서 히스토리를 확인할 수 있음. 아래처럼 누가 어떤 소스코드를 수정했는지 내역 확인, 되돌리기도 가능

3.2 git push password 에러

push 할 때 다음과 같은 에러가 뜰 수 있음. 2021년 8월 13일부터 비밀번호 인증 지원을 사용하지 못하도록 보안 업데이트가 되었기 때문.

remote: support for password authentication was removed on august 13, 2021. please use a personal access token instead.

위와 같은 경우, 비밀번호 대신 token 이나 ssh 두가지 중 하나의 인증을 사용해야 함.

3.2.1. token 발급하기

  1. GitHub 상단에 있는 개인 프로필을 클릭한 후, Settings를 클릭합니다.
  1. 좌측 메뉴에서 Developer settings > Personal access token > Generate new token을 클릭합니다.

  1. 비밀번호를 입력한 후, 토큰을 생성합니다. 토큰 이름과 허가할 권한을 체크한 후에 Generate token을 클릭합니다.

  2. 생성된 토큰을 복사하고 필요한 곳에 사용합니다. 이때 토큰은 한번만 보여지기 때문에 안전한 곳에 보관합니다. 발급된 토큰은 부여된 권한만 볼 수 있습니다. 재발급을 원할 경우에는 재발급하고자 하는 토큰을 클릭 후, Regenerate token을 클릭하면 토큰이 재생성 됩니다.

  3. 토큰 발급이 완료되면 운영체제에 맞게 적용시킵니다.

    • Windows 제어판 > 사용자 계정 > 자격 증명 관리자 > Windows 자격증명 > git:https//github.com 찾기 > 편집 > 암호를 token으로 대체

3.2.2. SSH Key 생성하기

  1. ssh key를 생성합니다. GitHub 계정 생성 시 사용한 이메일과 비밀번호를 입력합니다.

    $ ssh-keygen -t rsa -C "email@example.com"
    Enter file in which to save the key (/c/Users/paullab/.ssh/id_rsa): **Enter를 누릅니다.**
    Enter passphrase (empty for no passphrase): **github password**
    Enter same passphrase again: **github password**
  1. 공개키를 가져옵니다. 공개키가 출력되면 복사합니다.

    $ cat ~/.ssh/id_rsa.pub
  1. GitHub 상단에 있는 개인 프로필을 클릭한 후, Settings를 클릭합니다.
  1. 좌측 메뉴에 SSH and GPG keys > New SSH key를 클릭하여 SSH Key 이름과 Key에 복사한 공개키를 붙여넣습니다.

  2. SSH Key 공개키가 잘 등록된 것을 확인할 수 있습니다.

0개의 댓글