일상/컴퓨터

[GitHub 깃 & 깃허브 입문] 깃허브

미적미적달팽이 2023. 3. 31. 17:36

[GitHub 깃 & 깃허브 입문] 깃허브

 

[깃 & 깃 허브 입문] 깃허브

원격 저장소 지역 저장소인 작업 컴퓨터의 로컬 드라이브가 아닌, 외부 통신망을 통해 접속할 수 있거나 작업 컴퓨터 외에 저장소를 원격 저장소라 하며, 이를 통해 협업과 백업을 해서 안전하

gunrestaurant.tistory.com


원격 저장소

지역 저장소인 작업 컴퓨터의 로컬 드라이브가 아닌, 외부 통신망을 통해 접속할 수 있거나 작업 컴퓨터 외에 저장소를 원격 저장소라 하며, 이를 통해 협업과 백업을 해서 안전하게 파일을 보관할 수가 있다.

깃허브 기능

깃허브는 무료 서비스와 유료 서비스를 동시에 제공하고 있지만, 무료 서비스만으로도 큰 제약 없이 사용이 가능하다. 개발자들이 주로 사용하는 여러 오픈 소스가 공유되고 있다는 점이 개발이라는 분야에서 큰 영향력을 끼칠 수 있었던 요소다.

  • 원격 저장소로 사용할 수 있다.
    깃허브는 원격 저장소 서비스로서 깃을 설치하지 않아도 깃허브 자체에서 온라인으로 깃의 버전 관리를 원활하게 할 수 있다. 지역 저장소에서 따로 관리하고 있는 것 또한 연결해서 손쉽게 커밋이 가능하다.
  • 온라인 개발 툴로 사용이 가능하다.
    구글 코랩이나, 여러 온라인 사이트 코딩 툴처럼 클라우드에서 소스를 작성하고 편집이 가능한 코드 스페이스(Code space) 기능이 추가되어서 온라인에서 코드를 수정하고 커밋할 수 있다.
  • 협업용으로 사용이 가능하다.
  • 자신의 포트폴리오로서 활용이 가능하다.
  • 타인의 소스에 쉽게 접근할 수 있고, 다양한 오픈 소스를 경험할 수 있다.

 

깃허브 가입하기

1. https://github.com/ 에 접속을 해준다. 

2. 아래에 Let's build from here이라고 시작되는 문단 아래에 Sign up for GitHub 칸이 존재한다. 이곳에 이메일을 기입한다.

근데? 본인은 왜인지 모르겠으나 학교 이메일을 사용하려 했더니 무한 로딩에 빠지면서 검은 창만 뜨고 컴퓨터가 먹통이 되는 현상이 발생했다. 

3. 그래서 침착하게 컴퓨터 껐다가 다시 켜서 입력해주니까 화면 잘만 넘어갔다. 이제 continue 버튼을 눌러준다.

4. 비밀번호, usename 등등 입력해주고 마지막에 이벤트 정보 이메일 수신 어쩌구 저쩌구에 관하여 동의할지 안할지 입력하고 contunue를 눌러준다.

 5. 그다음에 인증 시스템을 거치면

6. 입력한 이메일로 github한테 메일 인증을 위한 번호가 온다. 이를 입력창에 입력하면 계정 사용자에 대해 조사를 한다. 혼자 사용하는지, 선생인지 학생인지 체크를 해준다.

7. 무료로 사용할 거면 free, 개발자 팩을 구매하고 싶다면 오른쪽으로 넘어간다. 학생은 추가적인 인증을 거쳐서 유료 버전을 무료로 자유롭게 사용할 수 있다. 근데 지금은 귀찮으므로 pass

 

지역 저장소에서 원격 저장소로! 원격 저장소 만들기

지역 저장소에서 원격 저장소로 커밋을 등록하는 것을 푸시(push), 원격 저장소에서 지역 저장소로 다시 내려 받는 것을 풀(pull)이라고 한다. 지역 저장소에서 파일을 변경했다면 원격 저장소로 백업을 하고, 원격 저장소에서 다른 변경 사항이 있으면 내려받는 동기화 작업을 항상 해주는 것이 중요하다.

1. 로그인한 상태에서 https://github.com/에 접속하면 아래와 같은 화면이 나타난다. 와! 갤럭시! S23

2. 오른쪽 위에 +를 눌러주고 New repository를 눌러준다.

3. 그럼 아래와 같은 사이트가 나타난다. 뭔 입력하라고 하는게 참 많다. 

Repsitory name은 저장소 이름, Description은 저장소 소개, Public / Private는 저장소 공개&비공개 설정, Add a README는 저장소를 소개하는 글인 README.txt를 자동으로 생성할지 말지, Add .gitignore은 깃허브 저장소로 이동할 때 무시할 파일을 지정하는 것, Choose a license는 오픈 소스 라이선스를 선택하는 것이다.

4. 만들어진 저장소를 HTTPS 보안 방식으로 들어가는 것으로 설정한다. 만들어진 주소를 통해 쉽게 저장소로 접속이 가능해 졌다.

 

지역 저장소 만들고 원격 저장소에 연결하기

이제 원격 저장소에 연결할 지역 저장소를 만들어보자.

Git Bash를 실행해서 새로 loc-git 디렉터리를 만들고 테스트용 파일을 하나 만든다. 내용은 아무렇게나 입력해도 좋다.

만든 테스트 파일을 스테이징 후 커밋을 한다. 커밋 메시지는 add zz로 작성했다. 커밋이 잘 됐는지 확인까지 해준다.

우리의 친절한 깃허브씨는 원격 저장소에 지역 저장소를 연결하는 방법을 메인에 띄워준다. 방법 중에 '커맨드 라인에서 기존 저장소 푸시(…or push an existing repository from the command line)'에 씌여있는 팁을 따라 해본다.

아까 HTTPS로 설정하면서 옆에 있던 주소를 복사하거나 위의 명령어의 첫 줄을 복사한다.

깃 배시에서 붙여넣기는 shift + insert를 눌러서 할 수 있다. 명령어나 주소를 붙여넣기 해서 지역 저장소에 원격 저장소를 연결해준다. git remote -v로 제대로 연결 됐는지 확인해본다.

git remote add origin https://github.com/giturename/githubtest.git
git remote -v

 

동기화

원격 저장소에 커밋 푸시

아까 깃허브에서 알려주는 명령어에서 두번째, 세번째 줄이 깃허브에 푸시를 하는 법을 알려주는 명령어이다. git push -u origin main을 복사해서 입력해준다.

git push -u origin main

 

명령을 입력하고 나서 왜 깃 배시창이 반응이 없지? 할 수 있는데, 처음에 연결할 때는 깃 허브 로그인 창이 따로 뜬다. 로그인을 해준다.

아래와 같은 창이 떴으면 Authorize GitCredential Manager를 눌러준다.

터미널 창에서 푸시가 마저 진행된 뒤, 완료되면 프롬포트 $가 나타난다.

저장소 창을 새로고침하면 1 commit이 뜨면서 아까 만들어둔 파일이 뜬다. 1commit을 클릭하면 커밋한 파일에 대한 정보가 나타난다.

 

git push

f1 파일을 다시 수정해서 git push 명령어로 push를 해본다.

저장소 사이트를 새로고침하면 새로 커밋한 로그가 나타나는 데, 이에 대한 커밋 메시지를 누르면 아래와 같이 추가된 부분에 대해 초록색 줄 +aa로 나타난다. 이것이 1 addition 됐다는 뜻이다.

 

원격 저장소에 직접 커밋하기

저장소에 Add files누르고 Create new file을 누른다.

아래와 같은 창이 뜨면서 새로운 파일을 작성할 수 있는 창이 나타난다. 원하는 내용을 입력하고, 아래로 스크롤 하면 commit new file이란 칸이 있다. 제목에는 커밋 메시지를 입력할 수 있다. 원하는 대로 수정하고, 초록색 버튼을 클릭한다.

원격 저장소에 만든 파일을 지역 저장소로 옮겨보자. ls 명령어로 디렉터리 내부를 살펴보면 f1.txt만 존재하는 것을 볼 수 있다. 원격 저장소에 만든 f2.txt 파일을 가져오기 위해 git pull 명령어를 사용해야 한다. 

git pull origin main

git log로 정보를 출력해보면, 원격 저장소에서 만들어서 받은 f2 파일이 있다. origin/main의 의미는 원격 저장소의 최신 커밋이라는 뜻이다.

 

깃허브의 원격 저장소 소개

  1. 맨 위의 파란색 제목은 계정 이름/저장소 이름을 뜻하며, 계정 이름을 클릭하면 계정에 관한 정보를 볼 수 있다.
  2. Watch는 저장소에 대해 알림을 받는 사용자 수를 뜻한다. 이 저장소는 비공개 저장소라서 표시가 다르게 된다.
  3. Fork는 저장소를 복제한 사용자의 수를 뜻한다.
  4. Star는 저장소를 즐겨찾기한 사용자 수를 뜻한다.
  5. 드롭다운의 main은 현재 표시되는 브랜치를 말하며, 이 드롭다운 목록으로 브랜치를 이동할 수 있다.
  6. 브랜치가 추가되면 이 main 옆에 브랜치의 수가 표시된다.
  7. 태그를 사용한 커밋의 수 또한 브랜치 갯수 옆에 표시 된다.
  8. About은 저장소에 대한 요약 정보를 표시하고 있다. 이에 대한 정보는 톱니바퀴 버튼을 눌러서 수정이 가능하다.
  9. 깃허브의 저장소에 올라간 파일을 릴리즈 버전과 패키지를 통해 배포할 수 있으며 Release를 통해 표시된다.

 

SSH 원격 접속

SSH는 secure shell의 축약어로 보안이 강화된 안전한 루트를 통해 정보를 교환하는 방법이다. 사용자가 SSH 키 생성기를 실행하면 private key와 public key가 생성된다. 일반적인 아이디와 비밀번호로 로그인 하는 방식이 아닌, 사용하는 서버나 컴퓨터를 깃허브에 등록하는 방식으로 일일히 아이디와 비밀번호를 입력하는 번거로움을 덜 수 있다는 차이점이 있다.

SSH 키 생성

홈 디렉터리로 이동 후 ssh-keygen 명령을 입력한다. 중간에 SSH key가 저장되는 디렉터리 경로를 표시하고, 파일 이름을 입력하라는 문구가 나오는데, 이를 무시하고 enter를 입력한다. 이후 계속해서 enter를 눌러주면 다음과 같이 출력된다. 여기서 .ssh가 ssh 키가 생성되어서 저장되는 디렉터리임을 알 수 있다.

cd ~
ssh-keygen

"Your identification has been saved in ~"하면서 나온 id_rsa이가 private key가 저장된 것이고, 그 밑에 "Your public key has been saved in ~"하면서 나온 id_rsa.pub는 public key가 저장된 것이다.

.ssh 디렉터리로 이동해서 ls -la로 디렉터리를 확인하면 id_rsa와 id_rsa.pub 파일이 존재하는 것을 확인할 수 있다.

더보기

ssh-keygen -t ed25519 -C "your_email@example.com" 명령어를 사용해서 기존의 RSA 알고리즘을 통해 파일을 암호화하는 방식이 아닌, ed25519 알고리즘으로 파일 크기도 줄이고 더 강력한 암호화 파일을 생성할 수 있다. 여기서 이메일은 깃 사용자 정보가 아닌, 깃허브 이메일을 사용해야한다.

 

깃허브 퍼블릭키 등록

깃허브에 public key를 저장해서 후에 접속할 때 컴퓨터에 있는 private key와 비교검증을 통해 접속할 수 있게 된다. 이를 위해 깃허브에 퍼블릭키를 전송해야한다. 깃배시에 다음과 같이 명령을 입력후 깃허브 사이트에 접속한다.

clip < ~/.ssh/id_rsa.pub

깃허브 사이트 상단에 자신의 프로필 사진을 누르고 settings으로 들어간다.

설정화면으로 넘어가면 왼쪽 메뉴에서 Access 항목에 있는 SSH and GPG keys을 클릭해준다. New SSH key를 누른다.

아래와 같은 화면이 나타나게 된다. 깃허브에는 SSH 키를 여러개 등록할 수 있으므로, Title에는 자신이 알아볼 수 있도록 이름을 정해주고, Key에는 복사한 SSH 퍼블릭 키를 붙여넣기 해준다.

Add SSH key를 누르고 비밀번호를 입력해서 인증을 해주면 SSH 퍼블릭 키는 등록이 완료가 된다.

이제 등록한 SSH 방식으로 접속하는 원격 저장소를 만들어보자. 처음 저장소를 만들었던 것 처럼 +를 눌러서 New repository를 통해 저장소를 새로 생성해 준다. 생성한 저장소에 들어가서 HTTPS가 아닌 SSH를 눌러서 저장소 주소를 바꿔준다.

깃배시로 돌아가서 홈 디렉터리에 ssh용 디렉터리를 생성해준다. 이후 새로 만든 ssh 원격 저장소를 연결한다. 잘 연결 됐는지 git remote -v로 확인하면 아래와 같이 출력이 되는 것을 확인할 수 있다.

테스트용 파일을 하나 생성해서 원하는 대로 입력 후 커밋을 한다.

원격 저장소에 푸시를 한다. 이후 인증과 관련해서 경고 메시지가 출력되는데 yes를 입력하고 진행한다. 푸시 후 저장소를 새로고침 해보면 파일이 잘 올라온 것을 확인할 수 있다.

SSH와 HTTPS는 인증 방식에 따른 초기 환경 설정 방식에서 크게 차이가 있을 뿐, 이후 파일을 푸시하는 과정에는 로그인의 차이가 있다.

 

명령 및 옵션

명령 및 옵션 설명
git remote add origin 깃허브 저장소 주소 원격 저장소(remote)에 깃허브 저장소 주소(origin)를 추가(add)
git remote 원격 저장소를 관리
-v verbose, 원격 저장소 목록 등 상세 정보를 출력
-u 지역 저장소의 브랜치를 원격 저장소에 연결 시켜주는 옵션
git push 원격 저장소에 푸시
git pull origin main 원격 저장소(origin)을 지역 저장소의 main 브랜치로 가져오기
ssh-keygen ssh key 생성
clip < 파일 파일의 내용을 클립보드에 복사

 

 

 

[GitHub 깃 & 깃허브 입문] 협업 환경

 

[깃 & 깃 허브 입문] 협업 환경

5-1 원격 저장소 공유 원격 저장소 복제 - git clone 먼저 이전에 실습하면서 생셩했던 원격 저장소로 들어가서 code 버튼을 누르고 HTTPS로 전환한 주소를 복사합니다. git clone 이라는 명령을 사용해서

gunrestaurant.tistory.com

 

반응형