TIL - Session: Git / Github (2)

Magit·2020년 4월 1일
0

TIL

목록 보기
8/16

참조
Git basic
누구나 쉽게 이해할 수 있는 Git 입문

1. Git repository

Git repository는 파일이나 폴더를 저장해두는 장소이다. 두 가지 종류가 있다.

  • Remote repository
    • 파일이 Remote repository 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소. 여럿이 같이 쓰는 클라우드 느낌이다.
  • Local repository
    • 내 PC에 파일이 저장되는 개인 전용 저장소

평소에는 자신의 PC의 Local repository 에서 작업하다 자신의 소스 코드를 공개하고 싶을 때, Remote repository에 공개한다. (Push)
그리고 remote repository에서 다른 사람의 소스코드를 자신의 Local repository로 갖고올 수 있다. (Pull)

1-1. Local repository 만들기

Local repository를 만드는 방법은 두가지가 있다.
1. 새로운 저장소를 만드는 방법 (git init)
2. 이미 만들어져 있는 remote repository를 local repository로 복사하는 방법 (git clone)

  • 새로운 저장소를 git init 을 통해서 만들기
    mkdir hello-world	# hello-world 디렉토리 생성
    cd hello-world	 # hello-world 디렉토리로 이동
    git init	#hello-world 디렉토리에 .git 디렉토리 생성
    #이제부터 hello-world 디렉토리는 git이 관리하는 Local repository가 된 것.
  • git clone 을 사용해서 복사해오는 방법
    보통 github의 url을 통해 복사해오는 방법이 주로 쓰인다.
    git clone url 폴더이름

2. Work tree와 index

내 PC에서 작업하고 저장소에 올린다고 했는데, 이런 작업하는 폴더를 git에서는 Work tree라고 표현한다. 그리고 저장소에 업로드하기 전에 index 라고 불리는 공간에 등록해줘야 한다. 이를 staging 이라고 표현한다. 그리고 staging한 파일을 저장소에 업로드 하는걸 commit 이라고 표현한다.

work tree --- staging --- index --- commit ---> repository

2-1. staging

만약 10개의 파일을 수정했지만 5개만 저장소에 업로드하고 싶다면, 5개만 선택하는 작업이 staging이다.
staging 명령어는 다음과 같다.

git add 파일이름

이 명령어를 이용해서 파일을 index에 등록하게 된다.
1-1의 hello-world 디렉토리에 sample.txt 라는 파일을 만들어보자.
그리고 hello-world 디렉토리의 상태를 확인해보는 명령어를 실행해보자.

git status

이를 통해서 hello-world 폴더의 상태를 확인하면

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#     sample.txt
nothing added to commit but untracked files present (use "git add" to track)

여기서 Untracked files(추적대상이 되지않는 파일)에 sample.txt가 존재한다. git add를 통해서 index에 파일을 등록(staging)하면 추적 대상으로 등록할 수 있다.

git add sample.txt

파라미터에 . 을 지정하면 모든 파일을 index에 등록할 수 있다.
혹은 add -A 옵션으로 모든 파일을 등록할 수 있다.

git add .
git add -A

3. Git commit

git은 버젼 컨트롤 시스템(VCS)이다. 그러므로, 파일이나 폴더의 추가/변경 사항을 저장소에 기록하는 것이 중요하다.
이를 commit 이라 한다.
commit은 아래 그림처럼 시간순으로 저장된다.
commit을 통해서 과거의 변경 이력 및 내용을 알 수 있다.

3-1. commit 하기

git commit -m "Comment"
# comment부분은 commit할 때 쪽지처럼 남겨줄 수 있다.

2-1에서 sample.txt를 staging했다. 이제 그것을 commit 해보자.

git commit -m "first commit"

그리고 상태를 확인해보자.

git status
On branch master
nothing to commit (working directory clean)

모든 변경사항이 commit 되었다.


4. 변경 이력 확인하기

commit 을 완료했다. 저장소의 변경이력을 확인해보자

git log

# 결과
commit ac56e474afbbe1eab9ebce5b3ab48ac4c73ad60e
Author: junkyuu<devzunky@gmail.com>
Date:   Sat Oct 5 17:45:21 2020 +0900

    first commit
    
# 결과는 참조 블로그에서 퍼왔다.

git statusgit log 의 차이점?

git status
파일들의 사애를 확인한다.
우선 파일의 Untracked / Tracked 상태를 확인한다. 이는 git의 추적대상인지 확인하는 작업이다.
그리고 Tracked 상태라면
Unmodified, modified, staged 상태를 확인할 수 있다.

git log
해당 branch에서 commit 내역을 보여준다.
명령어 그대로 log(기록)을 보여준다.

profile
이제 막 배우기 시작한 개발자입니다.

0개의 댓글