Shell
: 운영체제의 커널과 사용자를 이어주는 소프트웨어
실습
pwd : 현재 최상단 위치
ls : 파일 리스트
- ls [./디렉토리] : 해당 디렉토리의 파일리스트 확인
cd [디렉토리] : 디렉토리로 이동
mkdir [디렉토리] : 디렉토리 생성
touch [파일명.파일확장자] : 파일 생성
- touch [./디렉토리/파일명.파일확장자] : 디렉토리 안에 파일 생성
mv [파일명.파일확장자] [디렉토리] : 파일을 디렉토리로 이동시킨다.
- mv [./디렉토리/파일명.파일확장자] [디렉토리] : 파일을 디렉토리로 이동시킨다.
- mv [파일명.파일확장자] [파일명.파일확장자] : 파일명, 파일 확장자를 바꾼다.
- mv [파일명.*] [디렉토리] : 해당 파일명을 가진 모든 파일들을 디렉토리로 이동시킨다.
cp [파일명.파일확장자_1] [파일명.파일확장자_2] : _1 파일을 복사한 _2파일을 생성한다.
rm [파일명.파일확장자] : 파일 삭제
- rm [파일명*.*] : 파일명이 포함된 모든 파일을 삭제한다.
- rm - rf [디렉토리] : 디렉토리를 삭제한다.(r : 모든파일 삭제, f : 묻지말아라)
- rm ./* : 현재 위치 디렉토리의 파일들을 다 삭제한다.
Vim
: 무료 오픈 소스 텍스트 에디터
실습
vim [파일명.파일확장자] : 파일 열기
- i : 파일 입력
- # : 제목 텍스트
- '''[사용할 언어] ''' : 코드 블록 하이라이트
-  : 링크, 이미지 삽입
- esc : vim normal 나가기
- shift + ':' + [공백/숫자] : 맨밑으로 커서가 내려감/해당 숫자의 줄로 이동
- :w : 저장
- :wq : 저장하고 나가기
- :q : 나가기
- :q! : 저장안하고 나가기
cat [파일] : 파일 내용 확인
git
: 분산형 버전 관리 시스템
: 단순한 구조와 빠른 구조
: 분산형 저장소 지원
: 비선형 개발 가능
* git vs github/gitlab/bitbucket
- git : 버전 제어 시스템
- github/gitlab/bitbucket : 깃을 사용한 서비스
실습
git config : 깃의 설정
- git config --list : 깃의 설정 리스트 확인
- git config --global user.name [github을 가입할때 설정한 이름] : 연결할 깃 이름
- git config --global user.email [github을 가입할때 설정한 이메일] : 연결할 깃 이메일
- git config --global core.editor [vim] : 코어 에디터는 vim 을 사용
- git config --global core.pager [cat] : 주로 에디터를 확인할때는 cat 명령어를 사용
- 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" :
깃 레포지토리 생성
1. github로 가서 레포지토리 생성
2. 설정은 public, readme file생성, 라이센스 MIT
* GPL 라이센스 상용화 할때는 주의 "오픈 소스 안할때"
3. 생성된 레포지토리 CODE 눌러서 https: 의 url 복사
4. https://github.com/settings/tokens classic 토큰 발행 - no expiration, 모든 옵션 체크
실습
git clone [url] : url 레포지토리 내려받아서 이제 커밋가능하도록 설정
git status : 커밋하기전 하는 거고, 내 로컬 파일과 git 레포지토리 변경 사항 비교해줌
git add [./파일명] : add 레포지토리에 파일 추가할 거
git commit : 깃 커밋
- git commit - m "깃 커밋할때, 코멘트 작성" : 깃 커밋하면서 코멘트 작성
토큰 생성 후
git push origin main : 해당 저장소에 올려서 동기화 해줌
-> 윈도우인경우 토큰 입력 or 아이디/비번 입력
git remote -v : 깃의 url 을 확일 할 수 있음
- git remote set -url origin [url] : origin(저장소의 공간), 현재 저장소 url 변경(url의 경로 수정됨)
**git bash 에서 파이썬 파일 생성 및 실행**
vi hello.py : 파일 편집기에서 함수 수정
python hello.py : py 프로그램 실행
** 커밋시 작성해야할 포맷**
1. feat : 기능이 개발이 되었다
2. fix : 오류를 개선했다.
3. refactor : 기능을 개선했다
4. conf : 환경 설정 관련 수정
5. docs : 문서화 작업을 했다.
gitignore
: 특정 파일이나 디렉토리를 추적하지 않도록 명시하기 위한 파일
: 비밀번호 Config 파일에 들어간 링크들, API key
실습
https://www.toptal.com/developers/gitignore/ 로 들어가서 키워드 생성
생성된 텍스트 복사하기
touch ./gitignore 파일을 생성
vi gitignore 로 파일 붙여넣기
git branch
실습
git branch : 깃 브랜치 확인
- git branch [브랜치 명] : 깃 브랜치 생성
- git branch -D [브랜치 명] : 깃 브랜치 삭제
git switch [브랜치명] : 현재 커밋할 브랜치 변경
git merge [브랜치명] : main 에 머지할 브랜치명
* 하위 브랜치에서 push 된 정보를 상위 브랜치로 동기화 시켜주는 작업
git push -u origin [하위 브랜치명] : 하위 브랜치에서 내용을 동기화 시켜줄 수 있다.
** 요런 브랜치 머지작업은 대부분 pm이나, 팀의 팀장이 맡아서 한다
1. github의 브랜치에 해당하는 레포지토리에 가서 하위 브랜치 create pull request 를 실행
2. 상위 브랜치로 머지한다.
git pull : 현재 브랜치로 최신화
* 작업중인 변경사항 잠시 미뤄두기
git stash : 작업 중인 변경사항 미루기
git stash list : 미뤄둔 변경사항 리스트
git stash pop : 마지막 변경사항 꺼내기
- git stash pop [인덱스] : 특정 인덱스 변경사항 꺼내기
git stash drop : 변경사항 제거
git restore [파일명.파일확장자] : 깃 작업한 파일 내용 수정하기 전으로 원상복구
* 왠만하면 안하는게 좋다*
**커밋 취소하기**
git revert --no-commit [커밋 아이디] : 커밋 아이디 취소
- 예시 : git revert --no-commit HEAD~3..
git commit : 취소된 커밋을 브랜치에 알린다
git flow
팀원
팀프로젝트를 시작할때 셋팅
1. 팀프로젝트를 FORK 해서 레포지토리를 생성
2. dev에 [팀프로젝트] 이름으로 로컬 폴더 생성
2-1. cd [팀프로젝트] 팀프로젝트로 이동
3. git remote -v 를 통해서 현재 내 브랜치 외에 다른 브랜치를 fetch 하고 있는 건 없나 확인
4. git remote add upstream [팀프로젝트 url]을 설정해서 팀원들의 코드 수정된 부분을 업데이트 받음
5. git remove -v로 제대로 브랜치 설정되었는지 확인
6. git fetch upstream main 으로 코드 업데이트
7. git merge FETCH_HEAD 내 브랜치에 적용
팀프로젝트 할때, 매일 작성해야하는 부분
1. 이슈작성 : feature backlog 작성
2. 팀장님 코멘트 확인후 작업 진행