본문 바로가기

언어/Git

[Git] Git 명령어 정리 2 (Git 저장소 생성, git add, git commit, git push 개념)

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

Git - Git 저장소 만들기

2.1 Git의 기초 - Git 저장소 만들기 Git을 사용하는 방법을 알고 싶은데 한 챕터밖에 읽을 시간이 없다면 이번 챕터를 읽어야 한다. Git에서 자주 사용하는 명령어는 모두 2장에 등장한다. 2장을 다

git-scm.com

(위 사이트 참고)

 

저장소 (repository)와 push, pull의 개념을 공부해야 알아들을 수 있겠다.

 

[Git 저장소 만들기]

 

방법 1. (아직 버전관리를 하지 않는) 로컬 디렉토리(= 내 컴퓨터 안의 폴더 경로) 하나를 선택해서 Git repository (Git 저장소)를 적용하는 방법

 

방법 2. 다른 어딘가에 있는 (예를 들면, Github(서버)에 만들어놓은) Git repository를 Clone하는 방법

(방법 1, 2 모두 로컬 저장소(local repository; 내 컴퓨터 안에 만들어둔 저장소)를 만드는 방법으로 생각됨)

 

 

<방법 1. 로컬 디렉토리에 git repository 적용하기>

※ 윈도우 기준이고 다른 운영체제는 사이트 참고

 

먼저, 저장소로 사용할 폴더를 어딘가 만들어두고 경로를 기억한다.

D드라이브에 thon이라는 폴더를 만들었다면 그 경로는 "D:\thon"

cd /경로 
# 입력한 경로로 이동 (※※※ 백슬래시 아니고 그냥 슬래시로 적어야됨!!!)

출력 메시지 없음

git init
# git init : 이동한 경로 내에 ".git"이라는 하위 디렉토리 생성함
# 해당 디렉토리 내에는 repository에 필요한 뼈대 파일이 들어있다고 함
# 이 명령은 하위 디렉토리만 생성할 뿐 어떠한 파일도 관리하지 않음

이미 만들어져 있었나보다
해당 경로로 들어가서 숨김파일을 해제하면 보이는 .git 폴더

 

 

파일을 관리하려면 repository에 해당하는 폴더에 파일을 추가한 상태여야 함

(만약 repository 경로에 파일이 없는 상태라면, 관리할 파일이 없으므로 파일 관리가 불가능)

(repository 경로에 관리할 파일이 있다는 뜻은 = local repository에 파일이 있다는 말)

 

<방법 2. 서버의 저장소를 Clone하기>

이 방법을 사용하려면 자신의 github.com 계정이 있어야하고 + 계정에 repository를 생성한 상태여야 한다.

github의 계정이 있고, repository를 만들어 둔 사람이라면 그 url 주소는 "https://github.com/계정명/저장소명"이다.

 

git clone https://github.com/계정명/저장소명

# 개인 github의 git repository를 local repository에 복제하는(그대로 가져오는) 명령어
# git clone을 실행하면 저장소의 히스토리를 전부 받아온다는 특징이 있음


git clone https://github.com/계정명/저장소명 새로운저장소명
# git repository를 local repository에 복제할 때, 새로운 저장소명으로 가져오고 싶으면 이렇게 입력

(방법 1은 나중에 업로드할 remote repository를 새롭게 만들어야 한다.)

(만들어둔 remote repository가 있어서 뒤의 실습은 방법 2로 진행했다.)

 

 

이제 우리가 하고 싶은 건 local repository의 파일을 remote repository (원격 저장소 / 서버)에 업로드하는 것

 

그 단계는 아래와 같다.

Step 1. remote repository에 업로드(혹은 갱신)하고자 하는 local repository 내의 파일이 있어야 할 것

Step 2. 해당 파일을 "staging area"로 보냄 (이 때 명령어는 git add)

Step 3. "staging area"로 옮겨진 파일을 commit (git commit)

Step 4. commit까지 이루어진 파일을 remote repository로 push (git push) : 여기까지 하면 서버에 파일이 저장됨

 

 

업로드하고자 하는 파일을 만들었다고 치고 Step 2 방법을 알아보자

 

<Step 2. Local repository의 파일을 staging area에 추가하기>

git add 파일명.확장자명
# 로컬 저장소 내부의 파일을 서버로 업로드 하기 전 단계중 하나인 staging area로 보낸다.

# 왜 굳이 번거롭게 staging area로 보내야하는가?
# : 변경사항을 서버에 반영하기 전 확인 단계가 필요해서 아닐까 싶다.

ch02라는 ipynb 파일을 staging area에 올렸다. 뭔가 문제가 있어서 저런 메시지가 뜨는걸까 모르겠다

 

<Step 3. staging area로 보낸 파일을 commit하기>

git commit
# staging area에 올라와있는 파일을 commit한다

git commit -a
# -a는 all의 약자. staging area에 올라온 모든 파일을 commit한다.

git commit -m '메모'
# -m은 message의 약자. commit을 하면서 어떤 사항이 변경됐는지 메모하고자 할 때 사용한다

파일 하나가 변경되었다고 뜨는 걸 보니, 제대로 commit 된 것 같다.

 

<Step 4. commit까지 완료한 파일을 remote repository에 push>

git push
# commit까지 완료된 파일을 remote repository로 업로드/갱신한다.

잘 된 것 같은데 실제로 업로드가 되었을까?
아무 파일도 없던 github에 새로운 파일이 등록되었다.

 


 

이러면 local repository(내 컴퓨터)에서 수정한 파일이 remote repository(서버)에 업로드 되며 갱신/반영된다.

 

그리고 갱신되기 이전의 코드는 remote repository의 History에 저장이 된 상태가 된다.

 

이것이 바로 개발자들이 Git과 Github를 유용하게 활용하는 대표적인 이유라고 한다.