[오픈소스SW개발] Git Basics
용어 정리
-Version Control System
코드를 변경하거나 관련된 파일을 변경할 때마다 각각의 버전을 기록해서 저장소에 관리하는 시스템이다.
-Repositories(저장소)
파일들을 저장하는 장소이다. 저장소에 있는 파일을 직접적으로 수정하는 것이 아니라 저장소에 저장되어 있는 파일 버전들을 복사해서 저장소에 반영한다. 일반적으로 소스 코드나 빌드 설정 파일, 이미지, 텍스트들을 저장할 수 있다.
-Git
리누스 토발즈가 만든 VCS(버전 관리 툴)이다. 사용자가 작성한 소스 코드 등을 압축해서 저장소에 저장해 둔 다음 변경 이력을 열람하거나 불러올 수 있도록 만든 것이 깃이다.
-커밋
의미 있는 변경 작업들을 저장소에 기록하는 것을 뜻한다.
깃의 시스템
세 가지 영역으로 구분된다.
-Working directory
사용자가 작업하고 있는 공간이다. 에디터를 통해 직접적으로 바라보거나 수정하는데, 이때 수정 내용들은 저장소에 바로 반영이 되지 않는다.
-Staging Area
저장소에 반영할 파일들을 선택하고 이 파일들의 커밋을 준비하는 공간이다. 선택한 파일들의 변경 내용이 Staging Area에 저장된다.
-Repository(local)
커밋을 하면 Staging Area에 있던 내용들이 Repository에 버전 단위로 반영된다.
파일의 Lifecycle
-untracked
아직 tracking이 되지 않은 파일로, 기존에 존재하던 프로젝트에서 git을 초기화하거나 파일을 새로 만들면 untracked 상태이다.
-unmodified
repository에 저장된 파일과 working directory에 저장된 파일이 완벽히 똑같을 때의 상태이다.
-modified
checkout된 이후 수정사항이 있지만 stage가 되지 않은 상태이다. modified된 파일만 staging area로 옮겨갈 수 있다.
-staged
modified 상태의 파일을 커밋에 반영하기 위해 staging area에 올린 상태이다.
명령어 정리
-git add
working directory에서 만들거나 수정된 파일을 staging area에 옮기는 명령어이다.
-git commit
스테이지에 올라온 파일을 repository에 저장하는 명령어이다. 보통 -m을 사용하여 커밋 메시지와 함께 저장한다.
-git status
현재 깃 저장소의 파일 상태를 확인할 수 있다.
-git log
수정한 사람, 수정한 시간, 수정 내역을 알 수 있다.
-git rm
파일을 지우고, 그 파일을 스테이지에 올리는 과정까지 수행한다.
-git restore
수정되기 전 커밋된 상태로 되돌린다.
실습-구구단 프로그램 저장하기
-유저 정보 세팅
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git
$ git config --global user.name "Minkyung Ko"
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git
$ git config --global user.email "[email protected]"
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git
$ git init
Initialized empty Git repository in C:/Users/user/Documents/git/.git/
-소스 코드 추가 (5단 출력)
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git commit -m "Adding files"
[master (root-commit) 7e391de] Adding files
1 file changed, 6 insertions(+)
create mode 100644 aa.cpp
-소스 코드 변경하고 커밋하기 (1단~9단 출력으로 변경)
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: aa.cpp
no changes added to commit (use "git add" and/or "git commit -a")
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git add aa.cpp
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git commit -m "Modifying files"
[master 204077b] Modifying files
1 file changed, 6 insertions(+), 3 deletions(-)
-파일 삭제하고 커밋하기
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: aa.cpp
no changes added to commit (use "git add" and/or "git commit -a")
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git add aa.cpp
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git commit -m "Deleting files"
[master e086df6] Deleting files
1 file changed, 9 deletions(-)
delete mode 100644 aa.cpp
-로그 기록
user@DESKTOP-BASIT38 MINGW64 ~/Documents/git (master)
$ git log
commit e086df612a48342476e1325ed7580e91aad7e20f (HEAD -> master)
Author: Minkyung Ko <[email protected]>
Date: Sun Mar 20 21:57:38 2022 +0900
Deleting files
commit 204077b4fec5ce40469a1ef3776cfa0d093562b2
Author: Minkyung Ko <[email protected]>
Date: Sun Mar 20 21:55:12 2022 +0900
Modifying files
commit 7e391de393739e0cfb99b96f22d48dae4938cca2
Author: Minkyung Ko <[email protected]>
Date: Sun Mar 20 21:52:02 2022 +0900
Adding files
세 개의 커밋 기록을 확인할 수 있다!!!
Author And Source
이 문제에 관하여([오픈소스SW개발] Git Basics), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@komg00/오픈소스SW개발-Git-Basics저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)