< Git >
"분산" + "버전관리" 해주는 시스템 ( 설치해서 사용하는 프로그램 )
코드가 변화되어온 과정(히스토리)를 수정이 있을 때 마다 저장해줘서
개발되어온 과정 파악을 가능하게 해준다.
이전 버전과의 변경사항 비교 및 분석할 수 있다.
=> 주 기능 :< 백업 복원 협업 >
- 언제누가어떤내용을 수정했는지 표시
- 복원 가능 ( 원하는 시점의 버전으로 돌아갈 수 있다 )
branch 활용 =>
버전관리가 각자의 컴퓨터에도 유지가 된다.
Local Computer
Version DB
version 1 ->특정버전으로 남긴다 = 커밋한다
version 2 - 수정사항만 저장 (commit)
version 3 - 수정사항만 저장 (commit)
version 4 -----> 실제 file
// 즉, 수정이 일어날 때, 그 부분만을 Commit 해서 그 변경된 특정 버전으로 남긴다.
=> 각 버전이 관리되어 수정하기 전 버전으로 돌아갈 수도, 다시 돌아올 수도 있다.
---
GIt 은 CLI 를 활용한다. => GitBash
- VScode에서 GitBash를 쓰면 GUI 도 동시에 확인하며 작업할수있다.
- GitBash 로 init을 실행하면, 해당 디렉토리에 . git 이 생성되고 이놈이 사실상 모든 Commit 을 관리해준다.
. git 은 숨겨진 파일이다. (찾고싶다면 ls -a (All) 로 찾아볼 수 있다. )
- 즉, Java 에서 디렉토리를 정하고 프로젝트를 만들고, Intelli j 등에서 terminal 을 통해 gitBash 로 init 을 한다면
해당 디렉토리 ( build.gradle <= 요놈이 있는 바로 그 위치) 에 " . git " 요놈이 생성되서 commit 을 관리해준다.
- 이렇게 자동으로 생성 될 환경이 아니라면, 직접 프로젝트의 build.gradle <= 요놈이 있는 디렉토리를 찾아가서
그 위치에서 gitBash 를 통해 init 을 해주면 된다.
< GItBash Linux 기본 명령어들 >
ls (List Segment) - 현재위치목록 ( =dir(directory))
ls -a(All) - 숨긴목록까지 표시
mkdir 폴더이름 (Make Directory) - 새폴더 만들기
cd ( Change Directory ) 이동
cd .. <= 뒤로가기 ( . 은 현재위치 / .. 은 부모 위치)
touch 파일명.txt <= 원래는 시간바꿔주는 명령어인데, 없으면 파일생성
빈 파일 만들때 편해서 쓰는 명령어
rm(Remove) 파일명 <= 파일 지우기
rm -r(Recursive) 파일명 <= CLI 에서 지울때는 -r 재귀 붙여서 지워야한다
재귀하면서 반복으로 싹 다 지우는것
git init <= 해당 디렉토리에 Git repository 생성
<= . git 이 숨김 생성 되서 버전관리 한다.
(git 명령어는 따로 정리)
< Git - Commit 의 3가지 영역 >
"파일이 git 을 통해 버전관리가 되고 있는가?"
1. Working Directory - 내가 작업하고 있는 실제 디렉토리
파일 - untracked 상태 // 그냥 자바 든 뭐든 혼자 하고 있는 상태 ( Git 하곤 무관한 상태 )
=>git add => Staging Area
2. Staging Area - 커밋으로 남기고 싶은(특정 버전으로 관리하고 싶은) 파일이 있는 곳
파일 - (tracked) staged 상태 // 이제 Git 이 쳐다보는 중
( 어떤 파일만이 수정이 이루어졌는지 판단하고 구분해 놓음. )
=>git commit => Repository
3. Repository - 커밋들이 저장되는 곳
파일 - (tracked) committed 상태 // 이제 Git 안에 저장됨 ( Local 안에 저장 됨 )
( (4). 수정하고싶다 => 1. Working Directory로 다시 날림
파일 - modified상태
=>반복 )
=> Repository 에 Commit 까지 해두면 local git repository 에는 저장이 된 상태
( 즉, 내 컴퓨터 안에서는 버전별로 저장이 됬다. )
VS code 에서 git graph 깔아서 hub 올리기 전에 비교 및 확인 가능
( hub 에 바로 올리기 전에 확인해 볼 수 있는 기회 )
// 여기까지가 Local 이고, 로컬은 어짜피 컴퓨터 뿌셔지면 다 날라간다.
=> 클라우드로 올리자
=> 이걸 push 하면 github 클라우드로 올리는것
< GitHub >
GitHub => Git 을 활용한 저장소(클라우드) 서비스
이제 Git 의 분산 버전별 관리 에다가
협업 까지 더해진다.
저 Git 으로 "분산 버전별 관리" 하는 걸, 각자가 각자의 컴퓨터에서 하고,
그걸 각자 Git hub 클라우드에 저장해 놓을 수 있다.
서로 저장해놓은 걸 공유할 수 있다.
Push 해서 새로운 수정을 클라우드에 update 할 수 있고,
Pull 해서 새로운 수정을 내 local 컴퓨터에 가져와서 쓸 수 있다.
마치 한 테이블에서 딱 붙어서 디테일한 작업을 같이 하는 것처럼 할 수 있게 해준다.
'Git and GitHub' 카테고리의 다른 글
Git 추가 정리 fetch / log --oneline --all / windows 자격증명 (0) | 2023.01.11 |
---|---|
Merge - fast forward / 3 Way merging 전략 (0) | 2022.06.29 |
Branch 방을 따로 파자 (0) | 2022.06.29 |
. gitignore 민감한 파일들을 보호하자 (0) | 2022.06.29 |
git 순서대로 사용법 (0) | 2022.06.28 |