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으로 열기
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에 먼저 익숙해지는게 더 훨씬 좋음
기능에 대한 이해가 높아진 상태로 씀 + 실수를 덜함
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
로컬에서 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 생성
동적인 페이지 생성 불가 > 정적 페이즈 생성도구 활용
보면 괜찮은 링크
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/about/
안정적인 테마 Next
지속적으로 유지되는 중이라 Next로 시작하는 것을 권고함
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 |