본문 바로가기

일별 학습일지

01/12 :: Git

Git 은 코드 관리를 위해 사용한다. 

 

Shell, Vim commands 

Command line interface 

 

Shell

운영체제의 커널과 사용자를 이어주는 소프트 웨어

git flow는 잘 사용안함 

 

첫날은 많이 쉬울거임

마우스 필요없는 환경 

 

$ # \  뒤에 쓰면 됨

 

$ pwd : print working directory 

 

조회, 이동하는 작업을 많이함 

 

$ ls -a

$ ls -al

 

cd 이동하는 명령어

cd .. 상위 directory

mkdi (폴더이름) : 경로를 만들기

 

touch 파일 생성

 

.exe : touch라는 포맷을 활용해서 만들어도 실행 x  = compile 거쳐서 해야됨

(기계어 번역이 필요함)

 

docx : 워드파일도 동작 x

preset인 meta data가 없어서 그럼 

 

$ mv README.md src

 

README.md 파일을 src 경로로 옮겨라

 

$ mv ../server.jss .

상대 경로를 인지하고 움직이지 않으면서 파일 옮기기 가능

 

$ cp server.py ./server_copy.py

$ mv ./server.py ./main.py

이름 바꾸면서 복사하기

 

delete / remove / erase / uninstall

 

$ rm main2.*

main2로 시작하는 파일명 

 

디렉토리 안에 있는 파일들이 있기 때문에

디렉토리만 삭제 불가함

 

$ rm -rf dist 

dist 내부의 파일을 지우고 경로 삭제

 

주의.. sudo rm -rf / : / 는 최상위 디렉토리 = 다 지운다..

 

Q. vim cli 쓸일이 있을까?

vim : git commit용

cli : 클라우드에 넘기는 작업을 소스코드로 하기 때매 필요함

클라우드 쓸꺼면 알아야함

 

~ :  tilde

 

vi README.md

vim으로 열기

 

git bash에서는 우클릭으로 복사 붙여넣기 or shift+insert

 

 

 

vim으로 커밋메세지 저장할때는 딱 이정도로 들어오면 됨

 

command modde : 누르면 진입

 

: w

저장

:q

나간다 

그냥 나가려 하면 경고문구 나옴

 

:q!

저장하지 않고 나간다 

 

:set nu

cf. ctrl + r 누르면 redo / u 누르면 undo

 

shfit + A 누르면 바로 마지막 줄로 가지

 

$ cat README.md

바로 보여줌

 

 

Git

Linus Torvalds가 Linux 커널 관리를 위해 (화가나서) 1주일만에 만든 버전관리 시스템

 

업계 1위

 

단순한 구조와 빠른 속도

 

 

비선형적 개발(수천개의 브랜치)가능

 

 

Pros

Checkout 가능

새로운 기능 추가는 Branch로 개발 + 개발되면 merge 하기  

ex) vert 브랜치, gpt 브랜치 각각 브랜치 만들어서 맘에 드는 것 넣고 나머지 삭제

 

인터넷이 연결되지 안하도 개발가능

 

Cloud Platform 을 쓰려면 CLI 필수

GUI 에 익숙해지기 전에 CLI에 먼저 익숙해지는게 더 훨씬 좋음

기능에 대한 이해가 높아진 상태로 씀 + 실수를 덜함

blob : 파일 하나의 내 정보 / 실제 변경사항포함

 

 

Commit 관리과정 

작업하고 나서 add commit push

 

cf.

Bitbucket 5인 이하는 private 가능 

Gitlab 보안이 중요한 경우 - 금융계나 소스코드 유출불가한 환경에서 많이 사용

 

보기 좋게 하는 코드

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

 

라이센스 명시 중요함

 

이중 제일 자유로운 것이 MIT 라이센스

어떤 프로젝트 건간에 

 

GNU GPL 달린 것 조심해야됨. 

당신의 소프트웨어가 라이센스를 따라야함.

 

GPL 법무팀은 잘 찾아내는 것으로 유명함.

기업단위에서 라이센스를 안따랐다? 바로 내용 증명 보냄

 

 

 

파일 작성후 git status 로 체크

 

git add hello.py 사용하여

 

git commit 치면

 

i 눌러서 commit 내용 입력하고 :wq 

정상적으로 commit 하면 더이상 commit 할께 없음

 

로컬에서 add commit 하면서 쌓아놨다가 인터넷 연결되었을 때 push

 

주의 : windows는 아래창 뜰텐데 여기서 로그인 하지 않기

좀다가 옆의 토크버튼 클릭해야됨

 

소프트웨어 사용할때 베타는 사용지양

 

github에서 clasic token 발급후 진행하기

 

완료되면 아래와 같이 나옴

 

이런식으로 올라가짐

의미있는 내용을 적어서 자세히 안봐도 되게.. 공유할 수 있도록, 다른 사람을 배려하듯 잘 적어야함 

 

참고) d 25 j : 아래로 25줄 지우기 / d 20 k : 위로 20줄 지우기

 

 

working directory에서 동시에 2개 변경사항 존재

 

 

둘이 연관성 있는 주제도 아니고, 역할도 따로임(하나는 문서, 하나는 코드파일)

 

1개씩 올려서 Commit 해야함

 

방법

1. git add hello.py 

2. git commit 

관련해서 내용정리해서 적기

3. git push origin main

 

 

Conventional Commits

1. commit의 제목은 commit을 설명하는 문장형이 아닌 구나 절의 형태로 작성

2. 'Importance of Capitalize'

3. prefix 꼭달기

- feat  : 기능 개발 관련

- build : 빌드 작업 관련

- fix : 오류 개선 혹은 버그 패치

- ci : continuous Integration 관련

- docs : 문서화 작업

- chore : 패키지 매니저, 스크립트 등

- test : test 관련

- style : 코드 포매팅 관련

- conf : 환경설정 관련

 

Template

 

.gitignore 설정필요

프로젝트를 생성하면서 특정한 파일이나 경로를 추적하지 않도록 하는 것

개인은 상관없지만

 

 

https://www.toptal.com/developers/gitignore/

 

 

.gitignore 올리는 것도 동일

(올려도 숨김파일이라 안보임)

 

commit log는 오픈소스는 모두 영어로 씀

팀프로젝트는 제목 정도는 영어로 쓰는게 좋다.

 

복습할 때 참고할 링크

https://github.com/kingwangzzang1234/my-first-repo/commits/main/

 

README.md

전반적인 진행 과정 및 실행법이 담겨 있어 매우 중요하고, 잘 관리해야됨

 

git with .ipynb

github에서 변경사항 추적가능

 

 

Git은 습관이 중요함

TIL(Today I learned..) repositary에 오늘 배운 것 정리

- 매일 정리하다보니 정리가됨

 

좋은 예시: https://github.com/hanana1253/TIL/blob/main/git/20210129-git-branch.md

카테고리별로 정리해서 올리는 듯

 

 

github pages 

프로젝트 설명을 위한 웹사이트 호스팅 서비스

username.github.io repo 생성 혹은 프로젝트 별 pages 생성

 

동적인 페이지 생성 불가 > 정적 페이즈 생성도구 활용 

정적 페이지 생성해주는 도구

 

 

 

 

보면 괜찮은 링크

https://spoqa.github.io/

 

Spoqa 기술 블로그

스포카 크리에이터의 경험과 배움을 공유합니다.

spoqa.github.io

 

https://youtu.be/qUYF39PIPh4?si=2IxOcBXsjYCeFfu4

 

여러 커뮤니티에 기여하면서 정보를 얻을 수 있음

 

프로젝트를 할 때는 파일이 설치된 위치를 안벗어난게 좋음

package-lock.json 같은 파일들 등

 

 

Hexo로 진행할 예정

 

HEXO

hexo 구동전 nord.js를 설치해야됨

$ npm 인식하는지 체크 

 

$ npm install -g hexo-cli

$ npm install -g npm@10.3.0

 

새로운 post 작성시에는 제목 영어로, 내용은 한글로 하는게 좋음

 

https://hexo.io/docs/commands

 

테마 적용시 유지 보수되는 것 찾아서 해야됨 https://hexo.io/about/

 

안정적인 테마 Next

지속적으로 유지되는 중이라 Next로 시작하는 것을 권고함 

https://theme-next.js.org/

https://theme-next.js.org/docs/getting-started/#NexT-Installation

 

npm 방법이 편하며 package.json 이 있는 곳에서 npm install

 

참고: yml 은 , 하고 띄워야함(문법문제)

 

1. yml 열어서 기술문서대로 편집

2. hexo clean && hexo generate

3. hexo server

 

관련 설정용 링크

https://hexo.io/docs/one-command-deployment

https://theme-next.js.org/docs/third-party-services/math-equations

 

npm install hexo-deployer-git --save

'일별 학습일지' 카테고리의 다른 글

1/19 :: 실강  (0) 2024.01.22
01/15 :: Git  (0) 2024.01.17
01/12 :: EDA 프로젝트  (0) 2024.01.12
12/29 :: Instacart Market Data  (0) 2023.12.29
12/27 :: 실강  (0) 2023.12.27