본문 바로가기
개발환경/Git & GitHub

내 컴퓨터에서 Git 시작하기

by xangmin 2020. 4. 17.
반응형

 Git의 장점 중 하나는 대부분의 명령을 로컬에서 실행한다는 것이다. 원격 저장소(remote repository)정보가 필요할때만 (pull push 등) 네트워크가 필요하고 그 외에는 오프라인 환경에서도 commit이 가능하다.

 

Git 저장소 생성

· 기존 디렉토리를 Git 저장소로 만들기

  -먼저 로컬 저장소로 사용할 폴더를 생성하여 해당 폴더로 이동한다.

 *데스크탑으로 이동하여 git_save라는 폴더를 생성하고 git_save폴더로 이동한다.

cd Desktop/
mkdir git_save
cd git_save

 

 -해당 폴더에서 git init을 실행한다.

git init

.git 이라는 하위 디렉토리를 만든다.

.git 디렉토리에는 저장소에 필요한 skeleton 파일이 들어있다.

 

파일 상태 확인(git status)

git status

on brach master는 현재 작업중인 브랜치를 의미한다.

기본 브랜치로 "master"를 사용하기 때문에 master로 표기되고 있다.

방금 생성된 저장소이기 때문에 아무런 commit 내역이 없음을 표기하고 있다.

 

인덱스에 파일 추가 > Stage

-해당 폴더에 "test.txt" 파일을 만들어 저장

새로 생성한 test.txt 파일이 이력 관리 대상에 포함되지 않은 Untracked files 목록에 표기되는 것을 확인할 수 있다.

 

작업폴더(working directory) > 인덱스(staging area) > 저장소(head-repository)  *지난 포스팅 설명참고

 

저장소에 commit하기 위해서 먼저 추가(Untracked files) 및 변경(Modified files) 하고자 하는 파일을 먼저 인덱스에 기록(stage)하고 이후 스테이징 된 목록만 최종적으로 commit 명령어에 의해 저장소에 공개하게 된다.

 

-파일  추가하기

git add test.txt
git status

test.txt 파일이 인덱스(staging area)에 포함된 것을 확인할 수 있다.

'Changes to be committed' 목록에 있는 파일은 staged 상태라는 것을 의미 한다.

 

*확장자에 따라 stage하는 것

git add *.c

*폴더의 모든 Untracked Files 모두 한번에 stage하는 것

git add .

*인덱스에 추가된 파일을 제외하는 방법

git rm --cached test.txt

 

변경사항 확정

 git commit -m [설명] 명령을 실행하여 "test.txt" 파일을 HEAD에 적용해보자.

 참고로 git commit -a 옵션을 사용하면 스테이징 절차(add)를 생략하고 바로 add와 commit을 동시에 하는 것도 가능하다.

 

git commit -m "first commit"
git log
git status

commit 후 git log 명령을 실행해 보면 commit history가 정상적으로 남을 것을 볼 수 있다.


기존 저장소를 복제하기

복제(clone)

-다른 프로젝트에 참여하려거나 Git저장소를 복사하고 싶을 때 git clone 명령을 사용한다.

-git이 subversion과 다른 가장 큰 차이점은 서버에 있는 거의 모든 데이터를 복사한다는 것이다.

-git clone을 실행하면 프로젝트 히스토리를 전부 받아온다.

-서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다.

 

libgit2 라이브러리 소스코드를 Clone

git clone http://github.com/libgit2/bgit2

 

다른 디렉토리 이름으로 Clone

git clone http://github.com/libgit2/libgit2 mylibgit

수정하고 저장소에 저장하기

-파일을 수정하다가 저장하고 싶으면 스냅샷을 커밋한다.

-처음 저장소를 복제(clone)하면  모든 파일은 추적(Tracked)상태이면서 수정하지 않은(Unmodified)상태이다.

Untracked-Unmodified-Modified 모두 워킹트리 상태이다. 수정된 데이터는 add를 해줘야만 추적이 된다.

*untrackded : git에서 추적하지 않는 일반 파일

*Tracked : 추적중인 파일

 -Unmodified : 추적중이며 수정하지 않은 상태의 파일

 -Modified : 추적중이며 수정한 파일

* Staged : 추적중이며 수정사항이 스냅샷으로 만들어진 파일

 

 

 

 

 

 

 

 

출처 : https://www.youtube.com/watch?v=gsLEH9Fnw-Q&list=PLieE0qnqO2kS1wEteudZ-I30JdvGpdSr3&index=5

반응형

'개발환경 > Git & GitHub' 카테고리의 다른 글

윈도우에서 Git Bash 설치하기  (0) 2021.01.17
기본적인 git 사용법  (0) 2020.08.25
Git 과 GitHub  (0) 2020.04.17
Git 설치하기  (0) 2020.04.17
Git and GitHub  (0) 2020.04.17

댓글