230316 풀스택 11일차 - 클래스, 생성자, git bash

황인성·2023년 3월 16일
0

신광식강사님 유튜브 팡코딩 아카이브에 영상으로 설명자료 올라옴

클래스 돌아보기

// 전사가 무기를 여러 개 다룰 수 있어야 한다.
class Main {
	public static void main(String[] args) {
		전사 a전사 = new 전사();
		
		a전사.a무기1 = new();
		a전사.공격();
		// 출력 => 전사가 칼로 공격합니다.
		
		a전사.a무기1 = new();
		a전사.공격();
		// 출력 => 전사가 활로 공격합니다.
		
		a전사.a무기2 = new();
		a전사.공격();
		// 출력 => 전사가 활로 공격합니다.
		// 출력 => 전사가 칼로 공격합니다.
	}
}
class 전사 {
	무기 a무기1;
	무기 a무기2;
	void 공격 () {
		a무기1.실행();
		a무기2.실행();
	}
}
abstract class 무기 {
	abstract void 실행 ();
}
classextends 무기{
	void 실행 () {
		System.out.println("전사가 칼로 공격합니다.");
	}
}
classextends 무기{
	void 실행 () {
		System.out.println("전사가 활로 공격합니다.");
	}
}

생성자

// 팔 길이를 출력하게 해주세요
class Main {
	public static void main(String[] args) {
		사람 a사람 = new 사람();
		a사람.나이 = 10;
		a사람.a왼팔 = new();
		
		System.out.println(a사람.a왼팔.길이 + "cm");
		// 출력 : 100cm
	}
}
class 사람 {
	int 나이;
	팔 a왼팔;
}
class{
	int 길이;() { // 생성자함수
		this.길이 = 100;
	}
}

main에 값을 할당하지 않아도 '생성자함수'를 이용해서 이름(아무개) 값을 할당해줄 수 있다.

class Main {
	public static void main(String[] args) {
		전사 a전사 = new 전사();
		a전사.소개();
		// 전사의 이름은 홍길동 입니다.
	}
}
class 전사 {
	String 이름;
	전사 () { // 생성자함수
		this.이름 = "아무개";
	}
	void 소개 () {
		System.out.println("전사의 이름은 " + this.이름 +  " 입니다.");
	}
}

내 컴퓨터를 git 원격과 연동하는 방법

git bash 실행

git update-git-for-windows
(윈도우에서 깃 최신버전으로 업데이트)

바탕화면에 새 폴더 생성
폴더명 : git_ex

폴더 경로 복사하고
git bash 가서
cd 누르고 Shift+Insert
역슬래시를 일반 슬래시로 바꿔줌
엔터

~Desktop/git_ex라고 뜸

폴더 보기에 가서 숨긴항목 볼 수 있게 체크

깃베쉬로 돌아가서
git init

폴더에 .git 폴더가 생김
(이제 버전관리를 git에서 할 수 있다.)

깃베쉬에 ls를 입력하면 해당 폴더내용이 나오는걸 볼 수 있다.

git status

테스트파일이 빨간색으로 뜨는데 변경점을 나타낸다.

git add .
(전체를 전송하는 역할)

git commit -m "test"

->
[main (root-commit) b90deb7] test
1 file changed, 1 insertion(+)
create mode 100644 test.txt

폴더가 있고 로컬저장소가 있고 리모트 저장소가 있는데

방금 한 내용은 폴더에 있던걸 로컬저장소로 올린거고
아직 리모트저장소로 올린건 아님
이제 리모트저장소로 올릴예정
올릴때는 장바구니에 파일을 담아야함
이력이 변경됐을땐
장바구니에 깃 애드를 이용해서 파일을담음
커밋을 했다는건 로컬저장소에 올렸다는 뜻
나중에 푸쉬까지 했을때 리모트저장소로 올라감

리모트로 올리려면 어디에 올릴지 명시를 해줘야함

git config user.name "insung5189"
(git config user.name "본인아이디")

git config user.email "insung5189@gmail.com"

이렇게 입력하면 깃이 내가 이런 사람이다 라고 기억해줌
(개인에 대한 정보를 로컬에 알려준 것)

git config --list
라고 치면 내가 config한 파일들을 볼 수 있음

깨끗하게 하고싶으면 clear 라고 치면 됨

깃허브 가서
레포지토리 새로 만듬
git_test

레포지토리 https 주소 카피하고

깃베쉬에

git remote add origin https://github.com/insung5189/git_test.git
(방금 생성한 레포지토리 저장소 주소)

입력해주면
아무것도 안뜨면 잘 된거임

git remote -v
라고 쳤을 때
origin https://github.com/insung5189/git_test.git (fetch)
origin https://github.com/insung5189/git_test.git (push)
이렇게 나오는걸 볼 수 있음

그리고
git push origin main
을 입력하면
새로만든 레포지토리(git_test)로 git_ex에 있는 test파일이 올라감

만약 저장소 연결을 잘못했을땐 git remote remove origin을 입력하면 지정한 저장소 정보가 제거됨
그리고 git remote add origin https://github.com/insung5189/git_test.git
부터 다시하면 됨

  1. 메모장 수정
  2. git status 변경 이력점(modified)이 빨간색으로 감지되는지 확인
  3. git add . 로 장바구니에 담기 git status를 누르면 녹색으로 표시됨
  4. git commit -m "메시지명" 을 통해서 로컬에 히스토리 남기기
  5. git push origin main 원격 저장소에 히스토리 남기기

깃에선 동영상은 너무무거워서 막을거고 나머지 가벼운 파일들을 업로드시킬 수 있음(코드, 사진, 텍스트 등등...)

정리
커밋한걸 원격저장소에 반영하려면 푸쉬를 해야함
깃 푸쉬하고 오리진메인 계속치기 귀찮아아
git push -u origin main
을 치면
이후에는 git push만 쳐도 유효함

git branch 를 치면
main 이라고 뜸 (추후에 변경가능)

git branch test
라고 치면

  • main
    test
    이렇게 뜸

git checkout test
을 작성해서 main 에서 test로 브랜치 옮겨주고
git add .
git commit -m "파일명(test)"
git push origin test
를 해주면 test브랜치로 파일(test.txt)이 업로드됨

깃(원격저장소)에서 내가 수정하고 반영하면
다른데서 작업할 땐
git pull origin test를 이용해서 해당 test브랜치에 업데이트된 내용을 당겨와서 싱크를 맞춰주고 작업하고
그 이후에 커밋과 푸시를 진행해서 동기화를 한다

git log
를 입력하면 내가 이제까지 업데이트한 로그를 볼 수 있음
Q 누르면 나갈 수 있음

git log -2
라고 치면 마지막 2개 로그 볼 수 있음
git log --oneline --graph
치면 그래프형태로 볼 수 있음
git log --oneline --graph --all --decorate
더 GUI스럽게 로그를 나타낼 수 있음

git log --oneline
쳤을때 HEAD라고 나오는곳이 현재 작업중인 위치

git reset '해쉬값'(예를들면 22b10aa같은 값)
을 넣으면 해당 위치로 작업중인 위치를 이동할 수 있음

GUI
인텔리제이에서 작업한 내용을 올리는 법
인텔리제이 실행
파일
열기
git_ex폴더 열기(지정한 폴더 위치가 여기라서 여는것)

프로젝트 탭
git_ex C:\Users\SBS\Desktop\git_ex
라고 써있는데다 마우스 우클릭
새로만들기
만들파일 선택해서 수정하고
왼쪽에 커밋 탭으로 이동하면
변경된 파일내역 나옴
그거 선택하고 밑에 커밋메시지 작성하고
커밋버튼 누름
그리고 창 우측상단에 있는 ↗버튼 눌러서 푸시

profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

0개의 댓글