Git
VS Code에서 명령 프롬프트 열기
위치 : 상단 메뉴 ➜ Terminal ➜ New Terminal
∴ 하단에 터미널 창이 뜬다
기본 명령어
dir : 현재 폴더의 파일 목록 보기
cd 폴더명 : 해당 폴더로 이동
cls : 화면 청소
저장소 목록 확인
git remote -v
➜ v (verbose) : 나열해라
HEAD
HEAD -> master, origin/master
HEAD 이동
<원격 브랜치로 이동>
git swtich origin/master : HEAD를 origin/master(다른 브랜치)로 옮기기
<HEAD만 이전 커밋으로 이동>
git checkout HEAD~ : HEAD만 한칸 뒤로 옮기기
<HEAD와 브랜치를 동시에 이전 커밋으로 이동>
git reset HEAD~ : HEAD와 master 브랜치를 같이 밑으로 옮기기
Git 실습
cd test08 : 폴더 이동
git init : 초기화
git status : 상태 확인
git add . : 파일 스테이징
git commit -m "index.html added" : 커밋
<p요소 추가 후>
git add .
git commit -m "p1 added"
① HEAD만 이전 상태로
git checkout HEAD~ ➝ p1이 사라짐
↳ HEAD가 가리키고 있는 커밋의 상태로 워킹트리가 변화
git checkout master : 현재 브랜치로 복귀 ➝ p1이 다시 생김
② HEAD와 브랜치를 함께 완전 이전 상태로
git reset --hard HEAD~ : 기록을 되돌린다 ➝ p1이 사라짐
git reflog : HEAD가 어떻게 이동했는지 이력을 보여준다
<예시>
PS C:\playground\git_test\test08> git reflog
23bd369 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~
5993850 HEAD@{1}: checkout: moving from HEAD~ to master
5993850 HEAD@{2}: commit: p1 added
git reset --hard HEAD@{1} ➝ p1이 다시 생김
or
git reset --hard 커밋_id ➝ p1이 다시 생김
커밋 id는 reflog의 맨앞 7자리로 표시
① GitHub에서 새 저장소(test08) 생성
② 원격 연결
git remote add origin 저장소_위치
git remote -v : 등록 확인
(git remote add : 원격저장소를 추가
origin : 원격 저장소의 이름 지정)
🔺 원격 연결 삭제
git remote remove origin : 원격 연결 삭제
③ 원격 저장소로 push
git push origin master
➝ GitHub에 master 브랜치 업로드
➝ HEAD⭢master, origin/master 연결

① 원격 브랜치 보기
git checkout origin/master ➝ local repo 기능을 사용 가능
② 병합

git merge origin/master
➝ 깃허브에 있는걸 제대로 쓰려면 fetch와 merge까지 완료해야 한다
③ push

git push
🔺 한 번에 가져오기
git pull : fetch와 merge 한 번에 해결
Eclipse
Git 저장소 위치 복사
git_repos로 이동하여 bash 실행
git clone 복사한_주소 ➝ 해당 저장소 폴더가 생성
cd 폴더명 몇글자 적고 TAB하면 자동 완성 사용 ➝ 해당 폴더로 이동
clone만 했기에 원격 저장소는 연결되었지만 아직 local에 반영한 상태는 아니다
ls ➝ 3개의 프로젝트가 있는 걸 확인
다른Com/java_work로 Switch Workspace
git mode click ➝ Add an existing local Git repository click

browse로 import할 폴더 찾아 click ➝ check 후 Add

확인하기

워킹트리에서 import 하고 싶은 Project를 찾아 마우스 우클릭
➝ Import Projects click

해당 Folder에 체크박스 check 후 Finish click

새로고침하면 import한 폴더에 .classpath와 . project 생성
➝ eclipes가 자동 생성

JAVA
공부 환경 만들기
Project : Step03_Class
Package : test.main
Class : MainClass01
예시
int num = 10;
String name = "kim"

Random ran = null;
ran = new Random();
ran.nextBoolean(); : true, false 중에 아무거나 하나
ran.nextDouble(); : 실수 중에 아무간 하나
ran.nextInt(); : 정수 중에 이무거나 하나
java에서 null = 참조 데이터 type이 담길 수 있는 빈공간
int num = null; -> 불가능

File f = new File("경로/memo.txt");
f.createFile(); : 파일 생성
Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
System.out.println("main 메소드가 종로 됩니다.");
필드 + 기능
모든 함수가 객체 안에서 존재, 단독으로는 불가
객체는 heap 영역(사물함)에 들어 있는 물건이라고 생각하면 된다
class를 이용해서 객체를 원하는 시점에 원하는 갯수 만큼 만들어 낼 수 있다

예제
같은 폴더에서 test.auto라는 package 생성 후
<Car Class 생성>
public class Car {
// 달리는 기능(method) 만들기
public void drive() {
System.out.println("달려요!");
}
}
<test.main package에서 MainClass02 class 생성>
package test.main;
import test.auto.Car;
public class MainClass02 {
public static void main(String[] args) {
// Car type 객체의 참조값(id)을 담을 수 있는 c1 이라는 이름의 비어 있는 변수 생성
Car c1 = null; // 동일한 package에 존재한다면 import 필요 X
// Car 클래스로 객체를 생성하고 할당된 참조값을 c1에 대입하기
c1 = new Car();
// c1에 들어있는 참조값을 이용해서 drive() 메소드 호출하기
c1.drive();
}
}
public class Car {
public String name; // 참조 데이터 type 의 기본값 :null
public int price; // 기본 데이터 type 의 기본값 : 0
}
public void drive(){
System.out.println(this.name+"이(가) 달려요!");