GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Git and GitHub

Git에 저장하고 Github에 올린다

Backcoder 2022. 6. 28. 18:21

< 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 컴퓨터에 가져와서 쓸 수 있다. 

 

마치 한 테이블에서 딱 붙어서 디테일한 작업을 같이 하는 것처럼 할 수 있게 해준다.