vscode에서 코파일럿 설치했다가 깃헙에 연동하래서 깃헙에 가입한게 5일 전
학생 인증 받으면 코파일럿 무료에 제공해주는 리소스가 정말 스크롤이 찢어질 정도라 신청까지 해버림
답변 메일도 하루도 안되어서 굉장히 빨리 왔는데 어제 확인함
2단계 보안인증하고, 결제용 신상 입력하고 (결제수단은 등록필요없음), 프로필에 이름 입력하고, 사진은 문서를 직접 촬영하라는 내용의 회신이 옴 (폰카로 찍어서 내면 된다고 하길래 굳이 뽑아야 하나 싶어서 인증서를 모니터에 띄우고 촬영했었음)
그래서 요청사항을 해결하고 어차피 응답이 빠르니 재신청은 필요할 때 해야겠다 싶어서
깃헙 튜톨리얼을 진행함.
언어를 처음 배울 때 Hello world 치듯이 repo를 만들고 브랜치 만들어서 수정하고 커밋하고 요청해서 머지하고 그런 내용.
하고나니까 잔디 심는다고 하던 그런게 됨
첨엔 오픈소스에 기여해야 된다길래 너무 거창해보여서 어려울 것 같았는데, 깃헙을 이용하기만 하면 되는 듯?
그래서 오늘은 초보자의 입장에서 내가 공부중인 책에서 제공하는 코드와 거기서 연습하는 내 코드가 있는 폴더를 새로운 레포지트리에 연동시키기로 마음먹음.
니꼬샘의 윈도우 셋업 강의를 다 들은 터라 (4년지난 강의라 바뀐 점이 정말 많았음) 홈페이지에서 드래그앤 드랍하기보다는 git 커맨드로 해보고 싶었음.
최대한 영어와 공식문서로 찾아가면서 수많은 시행착오를 겪음
레포지트리의 url 긁어오는걸 진짜 주소를 긁어서 붙여넣었더니 이상한 문자가 앞에 붙으면서 연동이 되어버렸고
origin master main을 착각해서
origin이 내 컴퓨터고 main이 내 레포지트리 브랜치니까 git push origin main을 자꾸 시도해보고 ㅋㅋ
누구든 처음엔 직접 박치기 하는 게 좋다고 생각하지만 이걸 가지고 거의 3시간을 쓴 거 같아서 정리요약해봄.
흐름은 이렇다
폴더하나를 로컬 리포지토리로 만들고 연동할 깃헙 리포지토리에 연결한 뒤, 업로드 할 내용을 staging에 올렸다 리포지토리에 올린 뒤 깃헙으로 보내는 느낌
터미널이든 우분투든 git cli 설치한걸로 올리고 싶은 폴더로 이동해서 (ls와 cd 사용하면서)
1. git init 하면 현재 디렉토리가 리포지토리가 되는 거임
2. git remote add origin ({url}) 입력함
url에 괄호는 필요없고
만들어둔 레포지트리에 초록색 코드 버튼을 누르고 https ssh github cli 3개중 원하는 방식으로 연동하면 됨
간단하게 https 탭에 있는 url을 복사해서
git remote add origin 뒤에 붙여넣고 실행
이 명령어의 뜻은 url을 origin으로 설정해서 연결하는 것
즉 깃헙에서 만든 리포지토리 = origin 이 되는 것
origin이라 쓰는 건 걍 국룰같은거라 협업할 때 국룰을 지키기 위해 지키는 거 같음
여러 곳에 연결할거면 이름 다르게 하면 됨 origin 말고 choong 한다던가
3. git status
쳐보면 현재 상태를 알려주는데 다양한 정보가 나온다. 어떤 상황에서 치냐에 따라 다양한 듯.
On branch master 라고 첫줄에 써있다면, 현재 마스터라는 브랜치라는 뜻 = 우리 로컬 리포지토리 브랜치이름임(main같은거)
4. git add .
저 . 마침표까지 써야함. 변동된 내용들을 staged 하게 만드는 건데, 우리는 폴더를 처음 올리는거니까 모든 내용이 추가되는 셈.
나중에 올린 뒤에도 로컬에서 작업하고 변경점이 생기면 이 4번 단계부터 실행해서 변경점을 업로드 해주면 됨.
git status 치면 커밋되려고 staged 된 친구들이 나옴
5. git commit -m "커밋로그"
staged 됐던 내용들을 그 다음 단계로 올리는 건데 -m 부분은 커밋로그를 인라인으로 추가하는거고
git commit만 쓰면 vim으로 커밋로그 작성하는 게 나옴. 그냥 커밋로그 대충 써서 보내면서 연습해보자.
^ = ctrl M-=alt 누르면 됨.
git commit -a (-m "커밋로그") 하면 staging 단계를 생략할 수 있음. add를 안했더라도 변경사항들이 add 되고 commit됨
대신 올리고싶지 않은 것도 다 들어갈 수 있으니 주의
6. git remote -v
이러면 현재 remote된 리포지토리가 나옴, 처음이고 이걸 따라했다면 origin으로 시작해서 url이 나오고 (fetch) or (push) 로 끝나는 2줄이 출력됨. fetch는 원격리포지토리에서 로컬로 불러오는거고, push는 반대로 보내는거임.
그냥 확인할려고 쳐보는거고 origin으로 보내는게 내가 보내려던 리포지토리가 맞는지 보는거지.
7. git push origin master
push는 commit된 애들을 업로드 해주는거임. origin이라는 곳에 master라는 걸 보내는 거임. 우린 master 브랜치밖에 없고 보낼 곳도 origin뿐임
실행하면 깃헙 유저네임 쓰라하는데 다른이름 써도 ㄱㅊ은듯
그러면 비밀번호 대라고 하는데 여기다 깃헙 비번을 적는 게 아님.
깃헙 설정 맨 밑에 development 어쩌구 있는데 그거 누르면
이런 게 나오고
Personal access tokens 이걸로 내 자격을 증명하는거임.
비번쳐서 하는건 3년전에 종료됨
Fine-grained tokens이랑 Tokens(classic)이 있는데, 클래식이 기본이고 앞에껀 보안이 더 강화된 거임
접근할 수 있는 리포지토리 종류나, 권한이 세분화 가능함 -> 우리한텐 필요없음
하지만 차이점이 궁금해서 계속 알아보니 보안성이 주 이유임
아직 모르는 내용이 많은데 앞에껄로 만들면 뭘 눌러서 어떻게 설정해야되는지 감이 안잡힐거임!
나도 만들었다가 자꾸 push가 안돼서 내꺼에 내가 올리겠다는데 왜 막는건가싶었음
권한을 하나도 안줘서 그럼ㅋㅋㅋ
심지어 내껀 퍼블릭이니까 걍 냅둬도 되겠다 싶었는데 read only만 되는거고
밑에 all로 하거나 선택해서 누르면 권한에 리포지트리에 대한 권한 정하는게 새로 생김
암튼 너무 복잡함
그냥 classic 토큰 만들고 이름 자유롭게 짓고 밑에 권한 모조리 눌러서 발급하고
키를 복사해서 어디 개인적인 곳에 저장해둠
그러고 아까 비밀번호 입력하는데다 shift + INS 해서 붙여넣기함!
그럼 깃헙 해당 리포지토리에 master라는 브랜치가 새로 생김!
거기에 우리 폴더 내용이 다 들어가있음.
하다보면 user.name이랑 user.email 입력해달라는 것도 나올 수 있는데
이건 내가 git cli로 뭔가 기여하고 그럴 때 누군지 정보를 주려고 하는거라 내 깃헙이랑 완전 똑같지 않으면 문제가 생긴다거나 하진 않음. 대신 열심히 했는데 내가 한 줄 모르면 슬플 듯?
그러니 push 할때도 닉네임 잘 보내면 좋을듯
내가 겪었던 오류중에는 git push origin main 이렇게 쳐서 생겼던 게 있는데, origin이 내컴인줄알고 main에 올리려고 한거였음ㅋㅋ
git branch 쳐보면 아마 master 하나 나올거임
깃헙에서 리포지트리 만들면 기본으로 브랜치 이름이 main 인데 로컬에서 만들 땐 master임
원래 개발할때 master / slave 이런식으로 많이 써서 그런건데 흑인운동때문에 main 으로 바꿨다더라
근데 여긴 안바꾼듯 헷갈리게
앞으로 만들 로컬 깃 폴더는 main 으로 하고 싶다면
git config --global init.defaultBranch main 하면 기본값이 main 이 됨
다만 이미 만든 우리 껀 master임
이것도 명령어로 이름 바꿀 수 있음!
암튼 이렇게 push로 올렸음
근데 반대로 누가 작성해둔 걸 내가 연결해서 받고싶을 수도 있으니까
그럴땐 clone 써서 아예 통째로 받아버리거나
연결된 곳에서 수정된 사항을 받고 싶으면 fetch하면 되고 그럼
클라우드에 사진 올리는 걸 세분화 해서 작업한다 생각하자
뭘 올릴지, 어디다 올릴지 정해서 연결하고 올릴 내용들을 선정해서 보내고
내가 그럴 권한이 있는지도 확인하고!
이로써 혼자 공부하면서도 깃에 잔디를 심을 수 있겠군
'풀스택 성장기' 카테고리의 다른 글
책 하나 끝냈다 (1) | 2024.11.20 |
---|---|
4주간 단전을 만들기 위한 계획 수립하기 (0) | 2024.11.01 |