sudo apt-get install git
전역 git 사용자 설정
git config --global user.name ["사용하고자 하는 이름"]
git config --global user.email ["사용하고자 하는 메일주소"]
위 전역 git 사용자 설정이 뭔지 감이 안잡히면
github가입 닉네임이랑 메일주소 쓰면 된다.
ssh 만들기
wsl-ubuntu의 현재 폴더에 .ssh
파이릉ㄹ 생성하고 ssh 키 생성을 진행하자.
mkdir ~/.ssh/
ssh-keygen -t rsa -b 4096 -C ["사용하고자 하는 메일주소"]
ssh-keygen
이 명령어를 수행하면
1) Enter file in which to save the key (/home/cona/.ssh/id_rsa):
2, 3) Enter passphrase (empty for no passphrase):
, Enter same passphrase again:
총 3개의 입력창이 활성화 되면서 뭘 막 묻는데
1) 항목의 경우 생성하는 SSH키를 저장할 파일 경로를 묻는 것이다. 물론 명령구문을 보면 알겠지만 기본 경로가 제안되고 있다
따라서 여기는 Enter
로 넘어간다
2, 3) 이 항목은 생성한 SSH에 암호를 설정하는건지 묻는 것이다.
물론 암호를 설정하면 SSH키를 사용할 때마다 추가 인증(암호)를 입력하니 역시 Enter
로 넘어간다.
SSH 에이전트 실행 및 키 추가
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
위 구문은 SSH키 인증을 관리하는데 사용하는 백그라운드 프로세스를 실행하라는 뜻이고
실행 결과는 프로세스 ID(PID)가 할당되고 이게 디스플레이 될 것이다.
그리고 맨 앞에 eval
명령어를 붙어서 환경변수에 설정하는 것이다.
그리고 SSH 에이전트가 실행되면 이를 앞서 생성한 개인 키를 추가하는 것이다.
아무튼 실행하면 아래와 같은 결과가 떠야 정상이다
GitHub에 로컬 SSH 키 등록
SSH 키를 wsl-ubuntu에 추가했으니
이제 이것을 github에 등록하는 과정을 진행하자
1) 키 정보 확인하기
cat ~/.ssh/id_rsa.pub
위 명령어를 수행하면 생성한 ssh가 출력이 된다
이걸 복사해서 github에 등록하는 것이다.
위 1번 과정에서 수행한 github
에 로컬 WSL-ubuntu
의 연동이 올바르게 진행되었는지 테스트를 진행하자
eval "$(ssh-agent -s)" #다시한번 SSH에이전트 구동을 확인
ssh-add ~/.ssh/id_rsa # 에이전트가 재실행 되었으면 다시 로컬 ssh파일 등록
# 깃허브 사이트와 통신테스트
ssh -T git@github.com
여기서 yes
를 입력해야 처음 연결하는 github
서버랑 연결이 올바르게 진행된다.
.bashrc
에 ssh에이전트 자동실행 등록
이제 WSL-Ubuntu가 매번 다시 실행될 때마다 번잡하게 SSH에이전트 실행 및 키 등록 과정을 자도으로 수행할 수 있도록 .bashrc
수정을 시작하자
nano ~/.bashrc #nano 편집기가 싫으면 vscode로
# 아래 구문을 가장 마지막줄에 추가
eval "$(ssh-agent -s)" > /dev/null
ssh-add ~/.ssh/id_rsa > /dev/null 2>&1
구문에 dev/null
와 같은 항목이 추가되어서 뭔가 어려운데
그냥 간단하게 위 두개의 구문을 실행하면 실행결과를 리턴하는데 그걸 숨기라는 뜻이라 보면 된다.
.bashrc
수정을 완료했으면 현재의 쉘 스크립트 갱신을 진행하거나 wsl을 재부팅하자
source ~/.bashrc
재부팅 후 잘 되는지 확인은 아래의 구문으로 확인하자
ssh-add -l
이제 목표하는 private
한 github 저장소를 클론이 가능한지 테스트해보고자 한다.
git clone [복사하고자 하는 저장소의 SSH주소]
복사가 성공하였고
복사 대상 패키지가 ROS패키지이기에 catkin_make
까지 안정적으로 수행됨을 확인하였다.
이렇게 자잘한 메뉴얼들은 꼭 기록을 해서 나중에 머릿속에 기억하지 말고 벨로그 같은 블로그를 외장하드처럼 이용하자
이제 위 사진처럼 git clone
으로 원격 저장소 로컬 WSL-ubuntu 작업공간으로 파일을 가져왔고
로컬에서 코드작업을 수행 후 저장을 하면
위 사진처럼 변경된 파일의 경우 M
마크가 박혀있을 것이다.
상태확인
이 상태에서 아래의 명령어를 쳐보자
git status
그러면 로컬 PC에서 작업한 내용이 무엇이 있는지 알려줄 것이고
원격 저장소의 버전 업데이트 상태(브랜치) 와
로컬 작업공간의 버전 업데이트 상태(브랜치)의 버전 순서가 뒤쳐지는지도 알려준다
지금은 원격 브랜치의 버전이 더 최신버전이니 이를 로컬 작업공간에 반영하자
최신버전 업데이트
원격저장소의 최신버전으로 로컬 작업공간을 동기화 하는 명령어는 아래와 같다
git pull origin main
필자는 깃 구조가 공부를 해도 잘 이해가 안되긴 하지만 어쨋든 버전에 붙은 이름 = branch = 지금은 main
이렇게 생각하고 넘어가자
수행결과를 보면 원격저장소의 변경된 파일이 로컬 작업공간에 반영됨을 알 수 있을 것이다.
수정 사항 반영 및 커밋 메세지 기입
로컬 작업공간에서 수정한 코드를 원격 저장소에
본격적으로 업로드 하기전에 '스테이징' 작업을 해야한다.
음.. 이거는 파일을 원격저장소로 push 하기 전 파일을 장전 까지만 하는 과정이라고 필자는 이해하고 있다.
딱 이런느낌?
여기까지 수행하는게 명령어로는 아래와 같다.
git add . # 특정파일만 스테이징 하려면 점 대신 파일명으로
지금 .
명령어는 변경된 모든 파일을 다 스테이징 하겠다는 뜻이며, 특정파일만 스테이징 한다면
파일명을 기재하면 된다.
여기서 끝이 아니라 commit
까지 하는것이다.
이거는 위 장전 짤을 보면 꼭 단계별로 구령을 하지 않는가?
지금 같은 경우는 '탄 장전!'에 속한다 보면 된다
이걸 명령어로는 아래와 같이 기술한다.
git commit -m "해당 작업에 대한 충실한 설명"
여기까지 수행한 후 git status
로 상태를 확인하자
메세지를 보면 이제 발사 를 수행하는 push가 가능함을 알릴 것이다.
파일 업로드(push)
이제 업로드를 수행하자 명령어는 아래와 같다
git push origin main
이러면 로컬 저장소에서 원격 저장소로 변경한 코드가 올바르게 업데이트가 된 것이다.
마지막으로 원격 깃 저장소 페이지에 들어가보면 적합하게 로컬에서 작업한 내용이 반영됨을 알 수 있을것이다.
이렇게 차근차근 초등학생도 이해할 수 있을 정도로 업무 그러니까 팀 내 협업에 대한 프로세스를 이해해 나가자.
첨부한 사진처럼 일부 허깅페이스 허브에는 허깅페이스에 가입된 계졍의 사전 자격증명을 요구하는 제한된 LLM들이 존재한다.
이런 파일들을 다운로드 받으려면 해당 LLM을 배포하는 회사들로부터 다운로드 자격허용을 먼저 받아야 하지만 받은 뒤에도 PC나 WSL-우분투 환경에서 다운로드를 받으려면 허깅페이스 Access Token을 등록을 하거나 미리 로그인을 해둬야 다운로드가 가능해진다.
따라서 계정의 Access Token을 먼저 환경변수로 등록하는 과정을 설명하고자 한다.
우선 첨부한 사진처럼 계정 -> Access Tokens 탭에 들어가서 신규 엑세스 토큰을 생성한다.
생성한 토큰은 편의상 권한설정을 최대로 풀었다.
토큰 Key는 기억을 해두자
다음으로 허깅페이스 CLI를 WSL-우분투에 설치를 진행한다
pip install --upgrade huggingface_hub
다음으로 .bashrc
에 허깅페이스 엑세스 토큰 및 허깅페이스 CLI설치 위치를 등록하자
.bashrc
등록 후에는 아래 명령어를 기입하여 환경변수 등록정보를 업데이트하자
source ~/.bashrc
등록정보를 확인하려면 아래 명령어를 기입하자
hf auth whoami
위 사진처럼 허깅페이스 계정 ID가 출력되면 정상적으로 등록된 것이다.
등록을 완료한 후에는 허깅페이스의 대용량 데이터 다운로드를 위한 라이브러리 : Git LFS
를 설치하자
sudo apt install git-lfs
git lfs install
첨부한 사진처럼 위 깃허브 SSH키를 제대로 만들었으면 id_rsa.pub
처럼 공개키가 생성되었을 것이다.
이것도 허깅페이스에 등록이 가능하다.
등록을 완료한 후에는 통신테스트를 진행하자
ssh-add -l
ssh -T git@hf.co
도움이 굉장히 많이 되었습니다. 감사합니다.