[목표]
매일 매일 꾸준히 쓰기 1주에 5일 이상 쓰기
규칙
1. 억지로 쓰지 않기.
- 진짜 배운 게 있는 날만 쓰기!
2. 양 신경쓰지 않고 기록하기.
- 양이 적다고 글을 포기하지 말고 조금이라도, 그게 한두줄이더라도 배운 게 있다면 기록하기!
3. 꼭 내 것으로 만든 후 작성하기.
- 스스로 생각을 좀 정리해본 후 TIL 글 적기!
- 남이 쓴 글 복붙 X , 내가 배우고 느낀 점 위주로. (일단은 그렇게 해보자)
밑의 내용들은 내가 수업중에 메모해가며 적은것들이고 이를 통해 다시한번 공부가 되어 올렸으며 적으면서 복습이 되기 때문에 그날 공부한 것들은 안 외우더라도 매번 적을 예정입니다.
[이론]
<배운 내용>
git과 브렌치
깃이 없는 세상- 왜 깃을 배워야 할까?
깃이 없다면
1. 변경 내역 확인이 어렵다
->다른 이름으로 저장?(버전끼리 비교가 어렵고 파일 용량 등 방해된다.)
2. 작업을 되돌리기 어렵다
->버그, 피드백X
3. 협력하기 어렵다.
->git의 목적
우리 변경 사항을 조금더 일목요연하게 관리해보자!
버전 관리를 위한 도구,git
=commit(버전): 유의미한 변화가 결과물로 나온것
유의미한 변화(ex: 새 기능 추가, 버그 삭제, 회원가입기능, 결제기능 등)
프로그램 개발 == 유의미한 변화를 쌓아 프로그램을 만들어나가는것
깃이 있으면
1.변경 내역들을 기억하며
2.필요하다면 작업을 되돌리며
3.여러명의 코드를 쉽게 나누고 합치며 개발하는것
github:원격 저장소 호스팅 서비스
인터넷 상에서 깃으로 관리한 프로젝트 관리해주는 서비스
+개발자들의 SNS라고도 한다.
git: 버전 관리 도구
tensorflow, kubernetes, git
위의 세가지는 벽돌이 쌓이듯 버전들이 쌓이면서 만들어진다.
깃이 관리하는 세 개의 공간
1. 버전 관리의 대상이 위치하는 공간
(.git에 있는 디렉터리)(유의미한 변경사항이 있을 경우)
2. 스테이지(다음버전이 될 후보가 올라가는 공간)
3. 저장소(로컬 저장소),(원격 저장소)[버전이 만들어지고 관리되는 공간]
1에서 2로 추가할경우 add라고 한다.
2에서 3을 갈때는 commit이라고 한다.
하나의 버전이 만들어지는 과정
작업 디렉터리내에서 변경사항 생성
스테이지로 add
저장소로 commit
명령어 정리
git init 로컬 저장소 열기
git status 작업디렉터리 상태 확인하는것
git add<스테이지에 추가할 대상> 스테이지에 추가할 대상 스테이지에 올리기
git add . 모든 변경사항 스테이지에 올리기
git commit 자세한 커밋 메시지와 함께 커밋하기
git commit --message"<커밋 메시지>" <커밋메시지>로써 커밋하기
첫번째 문에는 제목 3번째 문에는 본문
git commit -m "<커밋메시지>" <커밋메시지>로써 커밋하기
커밋 메시지 = 제목(+본문)
git commit -m "제목메시지" 간단한<커밋메시지>로써 커밋하기
git commit이 훨씬 더 좋다!
자료가 많으면 git log로 사용하면 번거롭다.
git log --oneline: 내가 만든 커밋을 보기
짧은 커밋메시지 앞 부분만을 따온다.
커밋 목록 한줄로 하기
짧은 목록으로 할때 아주아주 가끔 목록이 겹칠 경우 그것을 해쉬 충돌이라고 한다.
git log --patch: 커밋별 변경사항 목록 조회하기
git log: 커밋 목록 조회하기
[작업 내역 비교하기]
1.git diff: 최근 커밋과 작업 디렉토리 비교하기
2.git diff --staged: 최근 커밋과 스테이지 비교하기 !!순서 유의!!
3.git diff <커밋><커밋>: <커밋끼리 비교하기>
<이 커밋에 비해><이 커밋이 뭐가 달라?>
[브랜치 관리하는 방법]
브렌치는 버전의 분기
브렌치: 여러개의 흐름으로 관리하는 방법
브렌치가 없다면?
1.서로의 작업과 전혀 관련 없는부분. 같은 코드를 다르게 수정한 부분 혼재
2.일일이 수작업으로 합쳐야 함
3.때로는 서로의 코드를 합치다 실수가 생길 수도 있다.
브렌치로 버전의 분기를 관리하는 방법
브렌치로 문제 해결하기
1.브렌치를 나눈다.
2.각자의 브렌치에서 작업한다.
3.(필요하다면)나눈 브랜치를 합친다.
->브렌치를 합쳐도 각자의 브랜치를 진행할수 있다.
->언어가 다를경우 충돌이 발생할 수 있는데
너무 달라서 못 합칠리는 없다.
특정 버전에서 요구사항이 있을 경우 그 변경사항을 하면 중간에 브랜치를 나눠 각각의 요구사항을 해결하면 된다.
브랜치의 이름: 최초의 브랜지, master 브랜치
master의 다른 이름:main
가장 기본적인, 최초의 브랜치
지금까지 우리가 만든 커밋들은 모두 기본적으로 master 브랜치에 속해 있다.
특정 브랜치에서 작업하기:HEAD와 체크아웃
HEAD(포인터)
1.현재 작업중인 브랜치의 커밋을 가리킨다.
2.일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다.
3.한 마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다.
체크아웃(checkout)
1.특정 아웃
브랜치를 합친다 == 브랜치를 병합(merge)한다.
병합에는 두가지 방법이 있다.
1.새로운 커밋을 만들지 않는것(빨리 감기 병합)
->병합되는 순간가지 반여하기만 하면 되는 것
2.새로운 커밋이 만들어 지는것
[충돌 해결하기] (1,2는 순서)
1.충돌을 해결한다(어떤 브랜치의 내용을 반영할지 직접 선별한다).
2.다시 커밋한다.
pwd:현재 경로 확인하기
경로는 두가지가 있다.
절대 경로 -> 전체의 경로
상대 경로 -> 현재의 경로를 기준으로 나타내는 것(점으로 나타낸다)
상위 경로는 (점 점으로 나타낸다)
ls(엘에스) 현재 경로의 파일 및 폴더 조회하기
ls -al 현재 경로의 숨김 파일 및 폴더까지 모두 목록으로 조회하기
숨김 파일 및 폴더까지는 (점)으로 나온다.
cd<경로> <경로>로 이동하기
cd.. 상위 디렉터리로 이동하기
cd. 현재 디럭터리로 이동하기
cd~ 홈 디렉터리로 이동하기
홈 디렉터리: 처음에 열렸을때 기본으로 세팅되는곳이다.
touch <파일명>: 비어있는 파일명 생성하기
cat<파일명>: <파일명> 내용 확인하기
vi<파일명>: <파일명> 편집하기
vi는 편집기이다. (명령어 창에서도 사용할수 있는 편집기 다른 프로그램을 설치할수 없는 환경 원격일때 사용한다.)
a 혹은 i를 입력한다.(입력모드:insert라고 나온다.)
입력모드에서 빠져 나올려면 (ESC)를 눌러주면 된다.
(밑에 있는것은 ESC를 누르고 사용하는것)
:w(저장) :q(닫아주기) :wq(저장하고 닫아라)
rm(파일명):파일명 삭제한다.
mkdir(디렉터리 이름): 디렉터리 이름을 생성한다.
rmdir(디렉터리 이름): 비어있는 디렉터리 이름을 삭제하기
rm-rf(디렉터리 이름): 비어있지 않은 디렉터리 이름 삭제하기
<느낀점>
git에 관련되서는 이번이 완전 처음 배우는거라 기초를 잡는데 많은 공부가 필요하다고 느꼈고 이걸로도 모자라 많은 유튜브, 강의를 찾아봐야겠다고 생각했습니다.하지만 저번 프로젝트에 만약 git을 사용했으면 시간 절약을 많이 할수 있었음을 깨닫고 그냥 자료들만 하기에는 시간의 낭비, 많은 오류 방지를 할수 있음을 알고 누가 저런 개발을 해줘서 내가 이런식으로 공부만 해도 사용할수 있구나 라는 유익한 생각을 가지게 되는 공부였다고 생각합니다.
[실습]
<오늘 한 웹페이지>
<느낀점>
나는 프로젝트 하나를 끊냈는데 막상 새로운 프로젝트에 들어가니까 html 잡을 방향도 잡기 힘들라는것을 느꼈습니다.
저번 프로젝트에서는 자바스크립트를 위주로 했지만 오늘은 HTML을 위주로 하여서 웹페이지에 대한 기초를 잡는데 도움이 되었습니다.
오늘 1시간 30분 정도 걸려서 웹페이지를 기초 틀을 잡았고 내일은 웹페이지에 CSS를 추가하여 멋지게 꾸미고 프로젝트의 총괄 페이지를 작성해볼 생각입니다.
시간이 조금 걸려서 웹페이지를 만들었습니다.
모르는것을 배운것은 창피한게 아니라고 느꼈습니다.
<결론>
가장 중요하게 생각해야 하는 부분들
[이론] 깃이 있으면
1.변경 내역들을 기억하며
2.필요하다면 작업을 되돌리며
3.여러명의 코드를 쉽게 나누고 합치며 개발하는것
브렌치는 버전의 분기
브렌치: 여러개의 흐름으로 관리하는 방법
브렌치가 없다면?
1.서로의 작업과 전혀 관련 없는부분. 같은 코드를 다르게 수정한 부분 혼재
2.일일이 수작업으로 합쳐야 함
3.때로는 서로의 코드를 합치다 실수가 생길 수도 있다.
[실습] id의 first-child는 그문 전체가 아니라 인라인 부분에 가장 윗부분을 대상으로 하는 CSS문이다.
HTML에다가 CSS를 넣고 싶으면 <link rel="stylesheet" href="../static/css/style.css">라고 적어야 하며
static은 폴더명이고 css는 말그대로 css문들을 넣어놓는 공간 style.css는 css 파일명이다.