본문 바로가기

STUDY LOG/깃 | 깃허브

💛 [깃 & 깃허브 사용법] 깃(Git), 처음 시작하기

728x90
반응형

새 리파지터리(저장소) 생성

 


깃허브 로그인 후 새로운 리파지터리(저장소) 생성 (깃허브 우측 상단의 + 버튼> New repository)

 


 

 

 

 

저장소 이름지정

 

 


저장소 이름(Repository name), 저장소에 대한 설명(Description) 입력 후 공개/비공개(Public/Private) 여부 설정하기! 저장소 이름은 현재 진행중인 프로젝트, 프로그램 이름 처럼 구분하기 편한 이름으로 지정할 것

 


 

 

 

 

 



리파지터리 생성 완료!

 

 

 

나의 리파지터리 주소 확인하는 법

 

 

깃허브 저장소 주소를 확인하는 방법은 리파지터리에서 Code를 누르면 확인할 수 있다.
(리파지터리 주소 형식 = https://github.com/아이디/저장소이름.git) 

 

 


 

 

 

 

 

 

 

Git Bash로 내 컴퓨터 연결하기

 

 

컴퓨터에 Git이 설치되어있다는 전제하에, 프로젝트 폴더를 연결해주자
(만약 Git을 아직 설치하지 않았다면 git-scm.com/ 에서 자신의 운영체제에 맞는 git을 먼저 설치해주자.)

 

 

 

Git Bash 실행

 

 

 

이렇게 Git Bash를 먼저 실행한 뒤 cd 명령어를 통해 프로젝트 경로를 찾아들어가거나,

 

 



 

 

또는 리파지터리에 맞는 프로젝트를 생성할 디렉토리로 이동 한 뒤에 마우스 우클릭 > Git Bash Here 을 선택한다. 이렇게 하면 현재 선택된 폴더를 경로로 잡은 상태로 터미널이 열린다.


 

이름, 이메일 설정

만약 깃을 처음 설치했다면 git config를 통해 유저이름과 이메일을 설정해주어야 한다. (한 번만 해주면 됨)
Bash 창에서 다음의 명령어에 자신의 깃허브 아이디와 이메일 주소를 넣는다.

$ git config --global user.name "깃허브아이디"
$ git config --global user.email "이메일"

 

 

리파지터리 불러오기


아이디와 이메일을 입력했다면 깃허브에서 만들어둔 리파지터리 주소를 불러오자.
Bash 창에 다음의 명령어를 입력한다.

$ git clone https://github.com/아이디/저장소이름.git

 

리파지터리 주소는 https://github.com/아이디/저장소.git 또는 리파지터리에서 소스를 복사해서 붙여넣기 한다.
참고로 Git Bash 창에서 복사 붙여넣기를 할 때는 ctrl+v가 아니라 ctrl+shift+Insert

 

 



그러면 현재 위치한 디렉토리에 깃허브에서 만들어놨던 리파지터리 폴더가 만들어지고 깃허브 리파지터리 안에 있던 내용물이 모두 로컬저장소로 복사된다. 내가 깃허브에서 생성한 리파지터리 이름은 Go-Study 이므로 잘 들어왔다.

Git Bash에서 이 폴더 안으로 들어가준다.

Git Bash로 폴더를 이동하는 방법은 기존의 Bash 창에서 "cd 경로" 입력으로 리파지터리 폴더로 이동하거나, Bash 창을 잠시 끄고 리파지터리 폴더로 이동 후 다시 마우스 우클릭해서 다시 Git Bash Here을 선택해주면 이동된다.

 

 

$ git status


git status 입력하여 현재 저장소 상태를 확인한다. 나는 리파지터리를 생성하며 자동으로 만들어진 README.md 파일을 메모장으로 수정한 뒤 ctrl+s로 저장해 놓은 상태다.

살펴보면 리파지터리 저장소를 가져온 이후로부터 무언가를 수정한 이력이 남아있는데, 그것이 바로 빨간색 글자로 나타나고 있는 "modified: readme.md" 이다. 내가 Readme 파일의 내용을 수정하고 저장했기 때문에 modified 로그가 남은 것이다. 그러나 현재 이 수정이력은 Changed not staged for commit: 이라고 되어있다. 스테이지 되지 않았다는 뜻이다. 즉, 내가 컴퓨터에서 수정한 뒤 ctrl+s로 저장한 내역은 내 컴퓨터에 있는 정확히 같은 파일에만 반영된다. 원격저장소인 깃허브에는 반영되지 않는다.

 


Add, Commit, Push 이해하기

 

 

작업중인 디렉토리에는 내가 방금 수정하거나 만든 파일이 있다.



스테이징 영역(Staging Area): 작업중인 디렉토리에서 스테이징 영역에 파일을 올려놓는다
리파지토리(Repository): 스테이징 영역의 파일을 로컬저장소(내컴퓨터)에 반영한다

깃허브 리파지토리(Repository): 로컬저장소의 내역을 원격저장소(깃허브)에 반영한다



위 그림에서 볼 수 있듯이, 작업중인 디렉토리의 파일을 스테이징 영역에 반영할 때는 add
스테이징 영역의 내역을 로컬 저장소에 반영할 때는 Commit
로컬저장소의 내역을 원격저장소에 반영할 때는 Push를 쓴다.

 

로컬 저장소에 저장한다는 것은 우리가 일반적으로 사용하는 "다른 이름으로 파일저장" 과는 다른 개념이다.

README.md의 내용을 하나 수정한 뒤 수정 내역을 "version 1"로 추가하고, 또 다른 부분을 수정한 뒤 "version 2"로 추가 하고, "version 3"를 추가, "version 4"를 추가...  계속해서 수정된 내용을 추가해 나간다고 했을 때, 디렉토리 내에 "README version 1,2,3,4,5,6" 처럼 새로운 파일이 계속 생성 되는것이 아니라 내가 추가한 내역의 기록이 남는다.

무엇을 삭제했는지, 무엇을 수정했는지, 무엇을 새로 생성했는지와 같은 일련의 기록이 git log로써 남는다.

 

그래서 "다른 이름으로 저장" 처럼 저장공간을 계속 잡아먹지 않으며 원본인 README.md 파일은 하나이지만, 최신 버전은 version n이고 언제든 이전의 버전으로  다시 돌아갈 수 있는 것이다.

 


작업내역을 바로 커밋하지 않고 스테이징 영역에 저장했다가 커밋하는 이유는 스테이징 영역에서 작업 내역을 한번 더 확인하고, 선별적으로 로컬저장소에 반영하기 위함이다. 이렇게 하면 시간은 더 소요되지만 더 안정적인 버전 관리가 가능해진다.

 

 

깃 허브에 내가 수정한 파일 업로드하기



현재 깃허브의 README 파일을 보면 처음 리파지토리를 생성했을때와 동일한 내용이 적혀있다. 아직 수정이력을 반영하기 전이기 때문이다. README 파일 생성 옵션을 체크한채로 리파지터리를 만들었다면, 리파지터리 이름과 설명이 README.md 안에 들어간다.

이 메모파일을 아래와 같이 수정해놓았다. 

 

 

이 내역이 내 로컬저장소와 원격저장소에 동시에 반영되게끔 하는것이 커밋과 푸시이다. 따라서 깃에서 로컬저장소로, 깃허브로 파일을 업로드하는 순서는 add->commit->push 라고 보면 된다. 수정된 README 파일을 깃허브에 업로드해보자



파일 스테이징하기 (add)

 

스테이징 (ADD)


먼저 README 파일을 스테이징한다. 명령어는 git add 파일명이다
그리고 다시 git status로 현재 상황을 체크해보면 수정내역이 커밋을 기다리고 있다는 메시지를 볼 수 있다.

$ git add README.md

(파일명이 복잡한 경우 파일명의 첫~두 글자 정도 입력후 tab키를 누르면 자동완성된다.)

$ git status

 

 

초록색으로 표시되는 파일들이 커밋할 수 있는 상태라는 뜻이다.
(스테이징을 하기 전에는 README.md 부분이 빨간색으로 표시되었다) 다음은 스테이징 영역의 파일을 커밋한다.

 

 

스테이징 파일 커밋하기 (commit)

 

로컬저장소 반영 (COMMIT)

 

$ git commit -m "메모"

 

명령어는 git commit -m "간단한 메모" 이다. 나는 메모를 수정했으므로 "Modify README.md" 로 이름을 붙여주었다. 이렇게 간단하게 메모를 작성해놓으면 커밋별로 어떤 부분이 반영된 것인지 한 눈에 확인하기 좋다.

 

 

깃허브에 업로드하기(push)

 

 

깃허브 반영 (PUSH)

마지막으로 커밋한 내용을 깃허브에 업로드(반영, 푸시)한다. 명령어는 git push origin main(또는 master)
최신 버전의 Git과 Git Bash를 사용하고 있다면 main으로 표시될 것이다. master-slave 형식이 인종차별적 표현이라 main으로 명칭이 변경되었다고 한다.

 

$ git push origin main

또는

$ git push origin master


그러면 깃허브의 아이디와 비밀번호를 입력하는 창이 뜬다. 자신의 깃허브 아이디와 비밀번호를 입력해주자. Bash창 위로 아이디 비밀번호 창이 팝업되지 않을 수도 있으니, alt+tab키를 눌러 새롭게 열린 창이 있는지 꼭 확인하기.

이후 100% done 메시지가 뜨면 정상적으로 업로드 된 것이다.

 

 

 

 


깃허브로 돌아와 나의 리파지터리를 들어가보면 수정된 README.md를 발견할 수 있다.

 




 

다음은 "Hello World!" 를 깃허브에 푸시해보자.

 

 

[Git] 깃에 "Hello, World!" 푸시하기

준비사항 Git을 설치하고, GitHUB에 리파지터리를 생성했고, 자신에게 맞는 개발환경을 갖췄다면 "Hello, World!"를 작성하고 커밋 후 깃허브에 푸쉬해보자. 여기서는 리파지터리 디렉토리 안에서 Go

y-oni.tistory.com

 


 

 

 

 

728x90