Git

  • Git은 형상 관리 도구 중 하나로, 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.

GitHub

  • 깃허브(GitHub)는 분산 버전 관리 툴인 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다.
  • Ruby on Rails(Ruby를 사용하는 웹 프레임워크)로 작성되었다.
  • GitHub는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다.

Git 설치
https://git-scm.com
window 버전 다운로드 – 모두 default 설치

실행 프로그램

  • Git Bash : 리눅스 환경
  • Git CMD : 윈도우 커맨드 창
  • Git GUI : 윈도우 환경

윈도우에서는 - 폴더
자바에서는 - 패키지
리눅스에서는 - 디렉토리
같은 느낌이라고 보면된다.


Git Bash 실행

컴퓨터 사용자 이름 @ 컴퓨터 이름 MINGW32 현재 폴더 위치

  • MINGW32는 프로그램 이름이고,
  • $는 입력커서

컴퓨터 이름은 아래와 같이 확인이 가능하다.


~ = 홈 디렉토리라고 부른다.


리눅스 명령어

★★★ pwd ) 어느 위치에 있는지 확인

cd d: ) d 드라이브로 들어감

ls ) 무엇이 잇는지 내용을 보여줌

(ls -l 좀 더 자세하게)

cd Git ) d 드라이브에 있는 Git폴더로 들어감

ll(sysout과 같은) -> ls와 같은 내용이라고 생각하면 됨

ls -la ) 숨긴파일도 보여줌

./ - 자신의 폴더 (this.)
../ - 상위 디렉토리(폴더) (super)

cd .. ) 상위 폴더로 감

cat ) 내용 확인 (tab키를 누르면 자동완성)

메모장에 작성한 한 메모를 git 폴더에 저장함.
폴더와 연결이 되어 있어 git or 메모장 어디서 만들든 볼 수 있다

vi ) 편집기

편집화면
i 를 눌러 편집모드로 편집을 진행한다.

: wq(write quit) ) 편집을 그만하고 나가겠음


:q! ) 편집한거 저장 안하고 나감


rm -rf 파일 이름 ) 파일 삭제

mkdir 폴더 이름 ) 폴더를 만듬


vi로 편집도 생성도 가능함



우리는 이러한 것들을 프롬프트라고 한다.


Git 환경 설정

  • git에서 커밋 할 때마다 기록하는 사용자 이름과 메일 주소를 설정해야 한다.
  • 사용자 계정 홈 디렉토리에 .gitconfig 파일이 생성된다.
    C:\Users\yeoni.gitconfig

git config --list

1. git config --global user.name "~~"

2. git config --global user.email "~~"

내 이름과 메일주소 등록하기(GitHub에 회원가입한 것과 같은 것으로 하는 것이 좋음.)

Git 저장소

  • 저장소는 관리하고자 하는 모든 소스 코드 및 디렉토리가 저장되는 곳으로 여러 개의 프로젝트를 하나의 저장소에서 관리할 수 있다.

저장소는 특별한 데이터베이스처럼 보이지만 사실은 디렉토리와 파일 기반으로 데이터를 관리하며 생성한 저장소 하위의 .git디렉토리에 저장되어 있다.

(1) Git 저장소 기반으로 프로젝트 관리하는 방법

  • Git 저장소에 신규 프로젝트를 생성해서 반영하는 방법으로 처음으로 프로젝트와 저장소를 생성할 때 사용한다.
  • Git 저장소에 누군가가 이미 만들어 놓은 프로젝트를 활용하고 싶다면 해당 프로젝트를 복제해서 사용할 수 있다.

나의 위치

(2) Git 저장소 생성

  • Git 저장소로 사용할 디렉토리를 생성한다.
    => git_repo 디렉토리 만들기
    => 윈도우 탐색기에 폴더로 작성해도 되고 리눅스로 만들어 된다.

  • git init
    => 생성한 디렉토리를 Git이 저장소로 인식할 수 있도록 초기화한다.
    => 초기화하면 .git 디렉토리가 생성된다.
    => "." 이 붙어서 숨김 디렉토리로 인식한다.
    => 해제하려면 .git를 삭제하면 된다.

git init 관리 대상자 -> master 만듬

master -> main (약속)

숨긴거 까지 볼래 ls -la

지울래 rm -rf .git

Git의 스테이징 단계

  • git add으로 진행되는 형상 관리가 3가지 영역에서 진행된다.
출처 : https://iseunghan.tistory.com/322

① 워킹 디렉토리

  • 소스 코드를 작업하는 영역으로 코드를 추가, 수정, 삭제하는 작업이 이루어지는 영역을 의미한다.

내가 작업하고 있는 프로젝트의 디렉토리

② 스테이징 영역

  • 워킹 디렉토리에서 git add 명령을 실행하면 파일들은 Git의 스테이징 영역으로 이동하며 이를 통해 소스 코드의 상태 정보를 확인할 수 있다.

커밋을 하기 위해 $ git add 명령어로 추가한 파일들이 모여있는 공간

③ 저장소 영역

  • 스테이징 영역에 있는 소스 코드에 git commit 명령을 실행하면 최종적으로 Git의 저장소에 반영된다.

커밋들이 모여있는 저장소

파일 관점에서 Git의 4가지 상태
① Untracked : 워킹 디렉토리에 추가되었지만 Git에서 관리하지 않는 상태
② Unmodified : 신규로 파일이 추가되었을 때의 상태로 new file 상태와 동일
③ Modified : 파일이 추가된 이후 해당 파일이 수정되었을 때의 상태
④ Staged : Git의 스테이징 영역에 반영된 상태

출처 : https://iseunghan.tistory.com/322

git status ) 상태 확인

git diff ) 달라진 것을 확인

git add ) 워킹 디렉토리에서 스테이징 영역으로

git status ) git의 상태확인

git commit ) 저장소 영역으로 보낸다

git log ) 지금까지 무엇을 했는지 보는 것

git remote add origin ) (긴~주소를 origin 이라고 부르겠다)


git push origin main )로컬저장소 안 main에 있는 모든 것을 원격으로 옮기기




수정하기

vi

cat, git status

git diff 어떻게 바뀌었는지 확인

현재 파일에 있는 모든 디렉토리들은 (. or *) 을 사용

commit~ (합이라는 이름으로)

git push origin main ) origin(주소)로 메인 안에 있는 것들 보내기

GitHub 확인하면 수정된 "합"이 올라가 있는 것을 볼 수 있음.


문제 스스로 해결하기!)

  1. 클래스 파일 작성해서 Git Hub에 올리기

  2. 1) 로컬 저장소 만들기 : git_exam
    2) 파일 생성 : fruit.txt(과일명 5개 입력)
    3) 원격 저장소 만들기 : git_exam
    4) 올리기




Git으로 형상 관리하기

(1) 기본 용어

1 ) 스냅샷 (Snapshot)

  • Git에서 커밋할 때마다 발생하며 커밋한 시점의 형상 관리 상태를 의미한다.
  • 버전이라는 의미도 포함하고 있다.

2 ) 트리(tree)

  • 파일과 디렉토리의 구조 정보를 저장하고 있다.
  • 파일 시스템이 트리구조를 가지고 있기 때문에 형상 관리 역시 트리 형태로 스냅샷을 저장한다.

3 ) 저작자(Author)

  • Git에서 관리하고 있는 파일 혹은 디렉토리를 최초로 생성한 사람의 정보이다.
  • 일반적으로 사람을 식별할 수 있는 이름, 이메일 등의 정보를 저장한다.

4 ) 커미터(Committer)

  • 파일을 변경한 사람
  • 최초 파일이 저장소에 반영되면 저작자와 커미터가 동일하지만, 이후 해당 파일을 다른 사람이
    수정하면 커미터가 변경된다.
  • 저작자는 파일을 생성한 사람, 커미터는 파일을 변경한 사람

5 ) 커밋 메시지(Commit Message)

  • Git은 커밋할 때 반드시 커밋에 대한 메시지를 저장하도록 되어있다.
  • 명령어의 파라미터로 전달할 수도 있고, 에디터를 통해서 많은 내용의 메시지를 저장해서
    전달할 수도 있다.
  • 메시지는 되도록 상세히 작성해 두는 것이 좋다.

6 ) 부모 커밋(Parent Commit)

  • 현재 커밋이 참조하고 있는 상위 커밋을 의미한다.
  • 최초 커밋시에는 부모 커밋 객체가 없지만, 이후 다시 커밋을 하게 되면,
    현재 커밋된 객체가 부모 커밋 객체가 되고 나중에 커밋한 객체가 커런트 객체가 된다.

Java 기초

  • Java - 객체지향프로그램 이다
    ~oop(Object Oriented Programming)
  • 자바의 파일명과 클래스명은 동일하다.(규칙)
  • JDK(Java Developement Key) - 통역가 -> 컴파일 한다.
                          JDK 컴파일
00.java(사람이 읽는거)---------------------00.class(컴퓨터가 읽는거)
  • 함수( ) - 명령어들의 집합체 (클래스에는 명령어 불가)
    java가 알고있는 함수는 main 함수 뿐이라고 생각하면 된다.

- static이라는 것은 new를 안해도 된다. 즉, 만들 필요없이 있는 것이다.

예를 들어 ) 만들어진 음식으로 서비스로 준것 처럼 주문하거나 할 필요가 없는 것)

자바 안에 lang이라는 폴더 안에 class가 있다는 것임

java
	lang
    	Math
        System
        String
        Integer
    util
    	Random
        ArrayList

import java.util.ArraList;

/ 슬래쉬
\ 역스래쉬
: 콜론
; 세미콜론 (현재 문장의 마지막이다)
|| 파이프 라인 (or연산자)

0개의 댓글