출처: https://velog.io/@zangsu/Github-Repository%EC%99%80-%EB%82%B4-%EC%9E%91%EC%97%85-%ED%8F%B4%EB%8D%94-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0
✒️ 서론
오랜만에 Github Repository를 새로 만들었더니 세달만에 다시 연동 방법을 잊어버렸습니다!
항상 연동은 프로젝트 시작때만 웹 서핑 하면서 여차저차 해결 해 두니까 여러번 해도 체화 되지가 않아 이참에 제가 사용하던 방법을 정리 해두고자 글을 적기로 하였습니다.
글을 적는 김에 처음 Github을 사용하시는 분들 참고하실 수 있게 차근차근 글 작성하였으니 따라오시면 됩니다.
📁 Github Repository 생성하기
저의 Github 메인 화면 입니다.
따로 꾸며놓지 않아서 초라해 보이네요.
Repository란 버전이 관리되는 파일들을 저장 할 웹 상의 저장소입니다.
이번 핸즈온 머신러닝 공부에 사용될 저장소를 만들어 봅시다.
이렇게 생긴 메인 창의 상단 부분의 nav바 에서 Repository로 이동하겠습니다.
nav바 바로 아래의 초록색 new 버튼을 눌러 새 Repository를 생성합시다.
해당 화면이 새로 만들 Repository의 기본 정보를 입력하는 창입니다.
Repository name에는 핸즈온 머신러닝에 대한 코드를 저장할 공간이라고 이름 지어주었습니다.
Description은 부가적인 설명을 적어 줄 공간인데, 굳이 안적으셔도 무방합니다.
저의 Repository의 공개 여부를 선택하는 공간인데, 이번 프로젝트에는 개인적인 정보나 회사 프로젝트같은 알려지면 곤란한 코드들이 포함되지 않을 것이기 때문에 Public으로 선택하였습니다.
README 파일을 추가하면 해당 Repository에 처음 들어온 사람들에게 가이드를 제공 해 줄 수 있습니다.
저는 README 파일을 추가하는 것을 선호하는 편이나, 굳이 추가하지 않으셔도 무방하긴 합니다.
설정이 끝나셨으면 아래의 초록색 Create Repository 버튼을 눌러 Repository를 생성 해 줍시다.
새로 생성 된 Repository의 모습입니다.
해당 Repository에 저장되는 파일의 목록이 상단부분에 리스트로 보여지고, 아랫부분의 README.md 에서 Repository 방문자에게 제공 할 메모가 보여지게 됩니다.
현재는 Repository 제목 및 부가설명이 기본값으로 들어가 있는 모습입니다.
이렇게 Github에서 새 Repository를 생성해 보았습니다!
🔗 작업 폴더 생성 후 Github과 연동하기
1. 작업폴더 생성
별거 없습니다. 그냥 컴퓨터의 원하는 위치에 프로젝트에서 사용 할 폴더를 생성 해 주세요.
저는 C/User/source/py/머신러닝 아래에 Hands-On-Machine_Learning 폴더를 생성하였습니다.
2. Github와 연동하기.
평소엔 Git Bash라는 프로그램을 종종 썼는데, 이 글을 읽으시는 Git린이 여러분들의 컴퓨터엔 이게 없을 것 같아 명령프롬포트 cmd 를 통해 연동을 하겠습니다.
cmd 실행
다음과 같이 cmd를 검색을 해 명령프롬프트를 실행시켜 주세요.
아니면 Win + R 키를 눌러 검색 창을 켠 후 cmd를 실행시켜 주세요.
보이시는 창이 cmd라고 부르는, 컴퓨터에 명령어를 입력할 수 있는 공간입니다.
오늘 사용할 명령어는 많지 않으니 차근차근 진행 해 봅시다.
!참고로 여러분들이 앞으로 사용하게 될 다양한 언어의 명령어는 대부분이 특정 영어단어와 연관있습니다.
특정 동작을 하는 명령어가 왜 그 알파벳인지 한번정도 생각해 보시면 시간이 지나도 쉽게 기억할 수 있을거에요.
cmd 에서 폴더 이동하기
가장 먼저 해야할 일은 우리가 연동하고자 하는 폴더로 이동하는 것 입니다.
폴더를 이동할 때 사용하는 명령어는 cd(change directory) 입니다.
cd '이동하고자 하는 파일의 경로' 의 형식으로 사용합니다.
저의 경우 연동하고자 하는 파일의 경로가 C:\Users\User\source\py\머신러닝\Hands-On-Machine-Learning 이므로, cd C:\Users\User\source\py\머신러닝\Hands-On-Machine-Learning 을 입력합니다.
이제 우리는 연동하고자 하는 폴더로 왔습니다.
연동하기
이제 cmd 창에 우리 컴퓨터의 폴더와 Github의 Repository를 연동시켜주는 명령어를 작성 해 보겠습니다.
1. 현재 폴더에 Git을 연결 할 준비를 해 줍니다.
명령어 : git init
git init 을 사용하지 않아 폴더에 Git에 대한 정보를 담은 파일 (.git)이 없는 경우 다음과 같은 fatal: not a git repository (or any of the parent directories): .git 라는 에러 메시지가 뜨게 됩니다.
git init 이 성공적으로 완료되면 Initialized empty Git repository in C:/Users/User/source/py/머신러닝/Hands-On-Machine-Learning/.git/ 라는 성공 메시지가 출력 됩니다.
2. 해당 폴더에 원격 저장소를 연결.
명령어 : git remote add origin '연결 하고자 하는 Repository의 주소'
Repository의 주소는 Repository의 초록색 Code 버튼을 누르면 확인 할 수 있습니다.
저는 HTTPS 주소를 사용합니다.
즉, git remote add origin https://github.com/zangsu/Hands-On-Machine-Learning.git 를 작성합니다.
성공 메시지는 따로 출력되지 않습니다.
3. Repository의 상태를 컴퓨터의 폴더에 동기화 시키기.
명령어 : git pull origin main
해당 명령어를 통해 컴퓨터의 폴더를 Repository의 환경과 같은 상태로 만들어 줍니다.
성공적으로 수행된 후엔 어떠한 파일들이 변경되었는지가 다음과 같이 출력 됩니다.
4. Repository에 폴더의 내용 업데이트 하기.
폴더의 내용 업데이트는 다음의 세 명령어를 순서대로 사용하여 진행 됩니다.
명령어 : git add . git commit -m "커밋 메시지" git push
1. git add . 은 현재 파일의 상태를 git에 업데이트 하는 명령어라고 생각 해 주시면 될 것 같습니다.
2.git commit -m "메시지" 명령어는 git에서 버전 관리를 하며 바뀐 부분들에 대한 새로운 버전을 메시지와 함께 저장하는 명령어라고 이해합시다.
! 아직 작업 폴더에 새로운 작업내용이 없다면 git commit -m "커밋 메시지" 입력 시 On branch master nothing to commit, working tree clean 라는 실패 메시지가 출력이 됩니다.
commit은 변경된 점에 대한 새로운 버전을 저장하는 명령어이기에 이전 버전과 달라진 점이 없다는 내용의 실패 메시지를 출력하게 됩니다.
작업을 진행한 뒤 다시 git add 부터 진행 해 주시면 됩니다.
3. git push 명령어는 새로운 버전의 정보를 Github Repository에 업데이트 하는 명령어 입니다.
! 처음 github 에 연동을 했을 때는 git push를 하면 fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master 라는 명령어가 출력이 됩니다.
처음 git repository를 생성 한 뒤 기본 branch 생성을 안해줬기 때문이며, 오류 메시지에 나와있는 git push --set-upstream origin master 명령어를 사용해 기본 branch 설정을 해주면 이후엔 문제없이 사용 가능합니다.
'형상관리 Git' 카테고리의 다른 글
GIT에 관한 놀라운(?)사실 (0) | 2024.03.21 |
---|---|
[SourceTree] sourceTree사용 이유와 여러가지 해결방안(이전 commit으로 reset후 서버에 push하기, 이미 push한 commit메시지 수정하기, 이미 push한 commit삭제하기) (0) | 2024.03.21 |
에러... ! [rejected] main -> main (fetch first) (0) | 2024.02.02 |
Git 브랜치란 무엇인가 (0) | 2023.10.27 |
2.2 Git의 기초 - 수정하고 저장소에 저장하기 (0) | 2023.10.27 |