
파일 변경 사항을 시간에 따라 기록하고, 필요할 때 특정 버전을 다시 호출할 수 있는 시스템을 일컫는다.
간단히 설명하자면 동일한 정보에 대해 여러 버전을 정의하고 관리하는 것을 의미
🧷 사용하는 이유
1. 협업
- 다수의 개발자가 동시에 작업할 수 있는 환경을 보다 안전하고 효율적으로 만들어준다.
- 백업 & 복구
- 관리자의 실수로 버전이 꼬였을 때 언제든지 이전 버전 혹은 검증된 버전으로 롤백해 이상 상태를 복구할 수 있다.
- 히스토리 추적 & 관리
- 이전 버전(이력; history)을 확인할 수 있고 필요한 경우 특정 버전으로 롤백할 수 있다.
Git
• https://git-scm.com/
• SVN 보다 빠른 속도와 많은 기능을 지원
• 현재 많은 기업이 사용 중

Before
🧷 Local Version Control Systems
• 내 컴퓨터에서 버전 관리 가능 → 내 컴퓨터 하드가 날아가면 전체 코드 사라짐
• 버전은 관리되지만, 협업은 여전히 어려움
Now
🧷 Distributed Version Control Systems
• commit 하더라도 개인저장소 내에 적용됨 (다른 개발자에게 영향 없음)
• 원하는 순간에 배포(Push) 가능
• 오프라인에서도 작업 가능
• 자신만의 version history를 가짐
➡️ Git이 여기에 해당함 !!


# --- 파일만들 경로 이동 ---
박솔비@솔비의gram MINGW64 ~
$ cd OneDrive/
박솔비@솔비의gram MINGW64 ~/OneDrive
$ cd Documents/
# --- 📌 git_ws 폴더생성 ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents
$ mkdir git_ws
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents
$ cd git_ws/
# --- test_project 폴더생성 ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws
$ mkdir test_project
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws
$ cd test_project/
# --- 📌 git init : 해당 폴더를 Git 이 관리하기 시작 ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project
$ git init
Initialized empty Git repository in C:/Users/solbi/OneDrive/Documents/git_ws/test_project/.git/
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master) 📌관리하기 시작했다는 뜻
# --- test 텍스트파일 생성 ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git add test.txt

# --- 현재 status 확인 ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
nothing added to commit but untracked files present (use "git add" to track)
# --- test 텍스트파일 add ---
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git add test.txt
이 단계부터 version이 매겨짐

박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git commit -m "first commit" test.txt
[master (root-commit) 551df05] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git status
On branch master
nothing to commit, working tree clean
🧷 Git이 관리하는 파일 확인방법
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master) $ ls -all total 4 drwxr-xr-x 1 박솔비 197121 0 Jan 29 15:52 ./ drwxr-xr-x 1 박솔비 197121 0 Jan 29 15:45 ../ drwxr-xr-x 1 박솔비 197121 0 Jan 29 16:02 .git/ -rw-r--r-- 1 박솔비 197121 0 Jan 29 15:52 test.txt🧷 git Status


박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git remote add origin https://sxlbl:{토큰복사본}@github.com/sxlbl/zerobase
박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git remote -v
origin https://sxlbl:{토큰복사본}@github.com/sxlbl/zerobase (fetch)
origin https://sxlbl:{토큰복사본}@github.com/sxlbl/zerobase (push)


박솔비@솔비의gram MINGW64 ~/OneDrive/Documents/git_ws/test_project (master)
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 205 bytes | 205.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote: https://github.com/sxlbl/zerobase/pull/new/master
remote:
To https://github.com/sxlbl/zerobase
* [new branch] master -> master
📌 local에서 commit한 test.txt 파일이 git에 push됨

