통합개발도구/Git & Git-Hub

3. Git-hub

Zoo_10th 2024. 6. 7.

1. GitHub 세팅

1-1. GitHub 가입하기

 

GitHub: Let’s build from here

GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

github.com

1-2. Repository 생성하기

로그인이 되었다면 아래 Create repository

이미 만들어진 repository가 있다면 아래처럼 New를 클릭

레파지토리 이름을 설정하고 Public(공개)/Private(비공개)를 설정한 후, Add a README file을 클릭하여 README file을 추가한다. 설정이 완료되면 Create Repository를 클릭한다.

 - 나중에 설정 탭에서 Public와 Private 상호 변경이 가능하다.

1-3. GitHub에 파일 올리기

1) GUI, CLI를 이용하여 GitHub에 올리기

 - Add file > Upload File > 001.html

 - 초기 레파지토리 생성시 README.md 파일을 생성하지 않았을 경우 해당 화면이 나오지 않고, 아래와 같은 git 명령어가 나오게 된다. 똑같이 git bash에 입력하면 README.md파일이 GitHub 레파지토리로 들어가는 것을 확인할 수 있다.

2) Repository 내 하위폴더 생성하기

프로젝트를 진행하다보면 레파지토리의 갯수가 늘어나게 된다. 이렇게 늘어난 레파지토리를 체계적으로 관리하기 위해서는 하위 폴더의 생성이 필요하다.

① 우측 상단의 Add file을 클릭하고 Create new file을 클릭한다.

② / 를 기준으로 폴더가 분리된다. /{폴더명} 을 입력해서 폴더를 생성한다.

③ 빈 폴더는 생성되지 않는다.  임의의 파일을 생성해주어야 아래와 같이 commit new file 버튼이 활성화 된다. Commit new file 버튼을 클릭한다.

④ githubTest 레파지토리안에 test 폴더가 생성되었고 폴더의 하위에 index.html 파일이 생성된 것을 확인할 수 있다.

 

index.html 파일을 각각에 하위 폴더로 넣고 GitHub Page를 운영할 경우 하위 폴더를 http://{계정명}.github.io/{폴더명}/{폴더명} 과 같이 URL 구조처럼 사용할 수 있다. 예) paullabkorea/githubtest/test → 실제로는 test 폴더에 index.html로 연결된다.

2. git clone

 - 원격 저장소의 코드를 컴퓨터에 받아올 수 있다. 새 작업 디렉토리 만들고(mkdir 명령어) 생성한 디렉토리로 이동(cd 명령어)한다.

$ mkdir filename
$ cd filename
$ git clone https://github.com/id/clone-filename.git .

<- clone하기 전 clone 한 후 ->

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

3. git pull

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

$ git pull origin main

< - pull 하기 전 pull 한 후 - >

 - 코드를 수정하고 pull 받으려하니 누군가 이미 코드를 수정했을 경우에 사용하는 명령어이다. push를 하려고 했더니 누군가 이미 push를 해서 pull을 받아야 하는 상황이다.

시나리오
A사람 clone --- push1
B사람 clone -------------- pull-push2
C사람 clone ------------------------------- push3(pull 받지 않아 error)

1) 로컬 main과 원격 main을 다른 브랜치로 보고 병합한다.

git pull --no-rebase

2) 시간상 순서대로 병합한다.

git pull --rebase

 

4. git add, git commit, git push

4-1. git add, git commit, git push

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

 - 한이 주어진 경우에는 소스 코드 수정 후 커밋과 푸시하기

$ git status
$ git add .
$ git commit -m "추가 작업 내역입니다."
$ git push origin main

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

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

원격 저장소와 로컬 저장소의 싱크가 맞지 않아(예를 들어 컴밋 개수가 다르다던지) 로컬 저장소로 강제로 맞추고 싶을 때 사용하는 명령어이다. 이 명령어는 혼자 레파지토리를 사용할 때 사용하고 절대 협업시 사용해서는 안되는 명령어이다.

git push --force

4-2. git push password 에러

 - token을 발급하지 않아도 readme.md 파일 없이 레파지토리 생성 후 github에서 제시한 명령어를 Visual Studio Code 터미널에 입력하면 간단한 웹 인증만으로 연결이 될 수 있으니 참고 해야한다.(OS에 따라 안될 수도 있다.)

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

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

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

1) token 발급하기

① GitHub 오른쪽 상단에 있는 개인 프로필을 클릭한 후, Settings를 클릭한다.

② 좌측 메뉴 가장 하단에 있는 Developer settings > Personal access token > Personal access tokens (classic) > Generate new token을 클릭한다.

③ 클릭을 했을 때 Generate new token (classic)을 선택해야 한다. 휴대폰 인증을 활성화 두었다면 아래처럼 휴대폰 인증이 떴을 수도 있다. 활성화 해두지 않았다면 비밀번호를 입력하는 창이 떴을것이다.

④ 인증을 마치면, 토큰을 생성한다. 토큰 이름과 허가할 권한을 체크한 후에 Generate token을 클릭한다.

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

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

 - Windows

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

 - Mac

Mac OS의 경우 push 명령어를 실행할 때 여전히 같은 에러가 나타날 수 있다. Mac 키체인에 등록되어 있는 GitHub 권한 정보가 ID/Password로 되어 있기 때문이다. 이럴 경우에는 GitHub의 권한 정보를 위의 발급받은 ID/Personal Access Token으로 변경해주어야한다.

  ⓐ 키체인 접근 (Keychain Access app)

  ⓑ github.com 찾기

github.com이 없는 경우에는 빨간색 박스 버튼을 클릭 후 추가하면 된다.

아래와 같이 이름과 계정 이름 추가하면 된다.

  ⓒ 암호보기(show password)를 클릭하여 token 암호로 대체한다.

  ⓓ 만약 아래와 같은 화면이 뜨면 MAC 비밀번호를 입력하시면 된다.

2) SSH Key 생성하기

① 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

② 공개키를 가져온다. 공개키가 출력되면 복사한다.

$ cat ~/.ssh/id_rsa.pub

③ GitHub 상단에 있는 개인 프로필을 클릭한 후, Settings를 클릭한다.

④ 좌측 메뉴에 SSH and GPG keys > New SSH key를 클릭하여 SSH Key 이름과 Key에 복사한 공개키를 붙여넣는다.

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

 - 레파지토리가 이미 있다면 2번째 사항 선택

git remote add origin https://github.com/paullabkorea/githubtest.git
  - https://github.com/paullabkorea/githubtest.git저장소를 origin이라는 이름으로 연결 등록 
git branch -M main
  - 현재 로컬에서 master로 되어 있는 기본 브랜치를 main으로 설정
  - 기본 브랜치명 변경(git config --global init.defaultbranch main)을 해두셨으면 2번째 생략 가능
git push -u origin main
  - origin원격 저장소에 main 브렌치에 현재 브랜치 연결(--set-upstream(단축 : -u) )
728x90

'통합개발도구 > Git & Git-Hub' 카테고리의 다른 글

6. Pull Request  (0) 2024.06.07
5. Fork  (0) 2024.06.07
4. Branch  (1) 2024.06.07
2. Git  (0) 2024.06.05
1. Git & GitHub 기본 개념  (0) 2024.06.05

댓글