[ASAC 06] Git (5) - 로컬 저장소 설정 및 로컬 저장소를 기준으로 원격 저장소 설정하기.

flavor_blue·2024년 8월 28일

git

목록 보기
5/8

원격 저장소를 생성 했으니, 이제 로컬 저장소에서 원격 저장소로 연결을 진행 해 보자.

git init 명령어를 통한 저장소 설정

gitbash를 열어 cd명령어를 이용해 프로젝트 경로로 이동한다 윈도우 탐색기를 통해 프로젝트 최상단으로 이동하여, 마우스 오른쪽 클릭으로(윈도우 11은 shift + 마우스 오른쪽 클릭) open git bash here 을 클릭한다.


github의 repository와 연결하기 위해서는 "이 프로젝트는 분산관리를 하고 있다" 라는 선언 및 셋팅을 해 주어야 한다. 그게 바로 git init 명령어 이다. initialized(초기화, 초기설정)를 의미한다.


명령어를 사용하면 .git 이라는 숨겨진 폴더가 생성된다. 이 상태를 local 저장소 화 됐다고 표현하기도 한다. 해당 .git 폴더에는 git이 파일들의 버전을 추적하는 데 필요한 데이터가 저장된다.

해당 명령어가 사용됨에 따라 해당 프로젝트의 main branch로 초기 설정이 되었다.

지난번 설치 옵션에서 설정한 master의 대용인 main 적용이다.

원격 저장소와 연결하기, remote

해당 로컬 저장소와, 원격 저장소를 연결 해 보도록 하겠다. 해당 과정에는 remote 명령어를 사용한다
git remote add '별칭 이름' '저장소url'
git remote 명령어에는 다음과 같은 옵션이 사용된다.

  • add : 새로운 원격 저장소를 추가
  • set-url : 기존 별칭에 대한 url을 다시 정한다.
    git remote set-url '별칭 이름' '새로운 url'

set-url 명령을 통해, 받아오는 저장소와 올리는 저장소를 다르게 설정 할 수 있음.
git remote set-url --push(혹은 fetch) '별칭 이름' '새로운 url'

  • -v : 연결된 원격 저장소를 다 본다. verbose git remote -v 혹은 git remote --verbose 도 가능
  • remove : 연결 저장소를 삭제함. git remote remove '별칭 이름'

지난 글에서 만들었던 저장소의 https url을 통해 저장소에 연결 해 보자.

git bash인 mingw64에서 복사하는 방법

  • 복사하기 : ctrl + Insert Key (블록 지정은 마우스로...)
  • 붙여넣기 : shift + Insert Key

명령어는 다음과 같다
git remote add origin URL

별칭은 왜 origin 을 많이 쓰나요? (chatGPT Answer)

  • git clone 시 원격 저장소의 이름을 origin으로 자동 설정 한다고 함. 그래서 대부분의 사용자에게 익숙해짐.
  • git 초기 설계와 문서에서 origin 이라는 이름을 사용하여 업계 표준처럼 자리잡음
  • 단어 자체의 뜻이 "원래의" 혹은 "출처"라는 의미를 가지고 있어서 명확성이 있음.
  • 대부분 git 예제가 origin을 사용하고 있음.

add 명령어 사용 후, -v 옵션을 사용하여 연결 여부를 확인 할 수 있다.

status 명령어를 통한 상태 확인 및 add 명령어를 통한 파일 변경 추적 진행

git status 명령어를 사용하여 현재 내 저장소의 상태를 확인 할 수 있다.

딱 봐도 아직 뭐가 안될 것 같이 생겼다. untracked files 라는 말을 사용하고 있다. 직역하면 추적하지 않고 있다는 말인데, 앞서 git은 프로젝트 혹은 대상 폴더 하위의 파일들에 대하여 변경된 내용만 따로 캡쳐한다고 말했다. 그러기 위해선 파일들에 대한 정보를 가지고 있어야 한다. 즉, 파일들을 변화를 추적(track)할 필요가 있는데 그러한 과정이 바로 add 명령어이다.

git add 'file name' (전체 추가는 git add .)

좀 더 명확한 설명은, 작업 중인 파일들을 스테이징 영역에 저장하는 것이라고 한다. 스테이징(Stage)영역이란 커밋 전에 파일의 변경 사항을 임시로 저장하는 영역을 말하는 데, 파일 추적이나 변경 사항을 다음 커밋에 포함하기 위해 스테이징 영역에 추가하는 행위의 명령이 바로 add 인 것이다. 즉, 파일의 추가나 삭제, 변경이 발생할 경우에는 꼭 add를 해야 해당 내용이 commit 에 포함된다.

git add .명령어를 통해 프로젝트의 파일들을 스테이징 영역에 추가 한 뒤, status 명령어를 사용하여 다시 상태를 확인 해 보자.

lotto45 프로젝트의 파일들이 git 로컬 저장소의 new file로 들어가게 되었다. 추적이 시작된다는 뜻이다. 이 상태에서 파일을 수정하고 저장하면 이제 해당 파일이 수정되었다고 새로 추가하라는 내용이 뜰 것이다.



쓰잘때기 없는 주석 추가했더니 modified, 수정했다는 코멘트가 뜬다.

지금 상태에서 커밋을 진행하면 위의 Changes to be committed 부분은 커밋이 되지만, 밑의 Changes not staged for commit 부분은 커밋이 되지 않는다. 이렇듯 내용이 변경 될 때 마다 add 를 통해 스테이징 영역에 해당 내용을 추가해야 한다.

잘 추가가 됐다.

commit을 통한 변경내용 저장

지금까지의 변경된 내용을 commit 명령어를 통해 하나의 단위로 만들자.
git commit -m "저장할 메시지"

  • -m: 커밋 시 저장할 메시지를 작성한다. 주로 작업 내용에 대한 내용을 작성한다.
    • -am : git add + git commit -m 을 합친 명령어로, add를 따로 안해도 해당 명령어를 쓰면 add가 된다.

무턱대고 커밋을 했더니, 내가 누군지 명확하게 지정이 되어 있지 않아 커밋을 안해준다. 아래 경고에서 안내 해 주는 명령어를 통해 이메일을 등록 해 주자.

이메일 등록 후 커밋을 진행 했더니 정상적으로 등록이 됐다.

push 를 통한 원격 저장소 전송

해당 commit에 대한 내용을 원격 저장소인 github repository로 전송 해 보겠다. 이때는 push 명령어를 사용한다.
git push 'remote alias' 'branch name'

remote alias 를 통해 연결된 원격 저장소의 push 부분을 타겟으로 하여, 전송하고자 하는 브랜치 이름을 통해 내역을 전달한다.

해당 원격 연결의 push에 해당하는 부분을 타겟으로 한다.

가지고 있는 origin push 를 통해 main 브런치를 전송하겠다.

main 브런치를 전송하는 이유
기존에 만든 lotto45 원격 저장소는 아무것도 저장하지 않은 비어있는 저장소이다. 그렇기 때문에 내 local 저장소를 원격 lotto45 저장소에 덮어씌워주는 작업이 필요하다

push를 했더니, github 에 로그인 하라는 pop-up 창이 나온다.

웹 브라우저를 통해 로그인을 해 주도록 하자.
따로 로그인 처리에 대한 내용은 출력되지 않는다.

로그인을 진행하니, 다음과 같이 push가 됐다고 나온다! github 사이트를 접속하여 확인 해 보도록 하자.

내가 작성한 commit message와 함께 프로젝트가 제대로 업로드 됐다!!

정리

오늘 한 내용은 로컬 저장소를 기반으로 웹 저장소에 프로젝트를 올리는(push) 방법에 대해 진행 하였다. 기준이 어디냐에 따라 push 할 때 옵션이 바뀌기도 하니 잘 체크하도록 하자.
다음 글은 반대의 경우를 재현 해 보도록 하겠다.

📑 출처 및 참조
[ASAC] 강의 자료
chat GPT

profile
아무거나 쓰려하지 말고 생각하며 쓰고 싶습니다

0개의 댓글