Environment & Database (1) - Virtual Environment & Git / Github
2021. 5. 16. 17:34ㆍ[AI]/Data Engineering
New Stuff
- Python Virtual Environment
- Git & Github
Learned Stuff
[Python Virtual Environment]
anaconda를 쓰는 이유
- 프로젝트를 진행할 때 package 별 버전에 따라 수행할 수 있는 일이 있고 없는 일이 있습니다.
- ex) Tensorflow 2 버전 같은 경우 Python 3.5~3.8 버전을 지원한다고 합니다.
- Local 환경에서 프로젝트를 진행할 경우 상황에 맞게 매번 패키지를 Upgrade / Downgrade 해아합니다.
- 이를 가상환경에서 구축하게 된다면 이런 번거러움을 해소할 수 있고 anaconda가 이를 가능케 합니다.
- anaconda 뿐 아니라 pipenv, virtenv 도 있습니다.
anaconda prompt 사용법
conda 버전 확인
$ conda --version
- 버전이 출력된다면 conda가 설치되어 있음을 의미하고 가상환경을 만들 수 있다는 것을 의미합니다.
가상환경 확인
$ conda env list
- 생성한 가상 환경들이 출력되고 위치도 함께 출력됩니다.
- base 는 기본 환경을 의미합니다.
새로운 환경 만들기
$ conda create -n new_project
- 'new_project' 라는 이름으로 가상 환경을 만들었고
conda env list
로 가상 환경이 잘 만들어졌는지 확인할 수 있습니다. - 생성할 때 'y' + ENTER 또는 바로 ENTER 를 누르면 가상 환경이 만들어집니다.
가상 환경에 들어가기
$ conda activate new_project
- 가상 환경이 기본 환경 (base) 에서 'new_project' 이라는 가상 환경으로 변경된 것을 알 수 있습니다.
- 이 가상 환경에서 다양한 패키지를 다운 받아서 프로젝트를 수행하면 됩니다.
pip install
/conda install
가상 환경에서 나오기
$ conda deactivate
- 가상 환경에서 다시 기본 환경 (base) 로 돌아온 것을 알 수 있습니다.
가상 환경 지우기
$ conda env remove -n new_project
- 다시
conda env list
를 치고 보면 'new_project' 라는 가상 환경이 사라진 것을 알 수 있습니다.
[Git & Github]
Git
- 버전 관리 시스템 (Version Control System) 의 한 종류입니다.
- 버전 관리 : 여러 파일을 하나로 묶어서 관리한다는 의미
- 여러 사람들과 팀 프로젝트를 진행할 때 유용합니다.
- 하나의 파일에서 여려명이 같이 진행하다보면 누가 / 언제 / 어떤 작업을 / 어떻게 수행했는지 알기 어렵습니다.
- 업무를 수행하면서 자신이 진행한 부분을 기록으로 남긴다면 이후에 변경 사항이 생길 때 다시 되돌아 올 수 있습니다.
- Git이 이것을 가능케 합니다.
Github
- 원격 코드 저장소
- 하나의 프로젝트에서 보통 하나의 Repository를 사용합니다.
Git Commands
버전 확인
$ git --version
- 버전이 출력된다면 git 이 설치되어 있다는 것을 의미합니다.
Github Repository에서 Local로 가져오기
- 아래와 같이 Github에 있는 Repository를 Local 환경으로 불러오겠습니다.
- 불러올 Repository의 주소를 복사합니다.
- 불러올 Repository의 주소를 복사합니다.
- 작업할 폴더에 들어간 후 아래와 같이 코드를 입력하면 Local 환경으로 불러올 수 있습니다.
$ git clone https://github.com/taeyoonnoh/Battery.git
버전 관리 시작하기
$ git init
- 버전 관리를 시작한다는 것을 선언합니다. 해당 폴더에
.git
이라는 폴더가 생성되고 이 폴더에 버전 관리를 한다는 의미입니다.
Git 지우기
- 해당 폴더에서
.git
폴더를 삭제하겠다는 의미입니다.
$ rm -rf .git
Git add
- 어떤 파일을 기록에 남길 것인지 지정합니다.
- 예시로 'Battery' 폴더 안에 hello_world.txt 파일을 만든 후 저장하고
git add
를 수행하겠습니다.
- 예시로 'Battery' 폴더 안에 hello_world.txt 파일을 만든 후 저장하고
$ git add hello_world.txt
- 만약 작업한 파일들을 모두 기록에 남기고 싶다면
$ git add all
를 치시면 됩니다.
Git status
- 현재 어떤 파일들을 추적하고 있는지 확인할 수 있습니다.
$ git status
Ex) hello_world.txt
add 하기 전의 상태
Ex) hello_world.txt
add 한 뒤의 상태
Git commit
git add
한 것을 기록에 남기는 것을 의미합니다.
Ex) first commit
이라는 이름으로 기록에 남기기
$ git commit -m "first commit"
Git push
- 작업한 파일들을 Github Repository에 보내는 것을 의미합니다.
$ git push origin main
- origin : Github Repository 주소의 이름
- main :
main
브랜치에서 보내겠다는 의미 - 해당 개념은 아래에서 다시 다뤄보겠습니다.
- Github Repository 에
hello_world.txt
파일이 추가된 것을 확인할 수 있습니다.
그 외 알아두면 좋은 Git Commands
Git log
- 프로젝트를 진행하면서
git commit
한 과거 기록들을 볼 수 있습니다.
$ git log
Git remote
- Github Repository 의 주소를 추가 및 삭제할 수 있습니다.
- 다른 주소를 추가해 줌으로써 다른 Github Repository 에도 저장할 수 있습니다.
Ex) 전체 주소 보기
$ git remote -v
origin
이라는 이름으로 처음git clone
했을 때의 주소가 저장됩니다.
Ex) address
라는 이름으로 주소 추가하기
$ git remote add address "주소가 들어갑니다"
- 이 상태에서
address
라는 이름의 주소로 Github Repository에 저장하고 싶다면git push address main
을 치시면 됩니다.
Ex) address
라는 이름의 주소 삭제하기
$ git remote remove address
Git pull
- Github Repository 에서 저장된 파일들을 Local 환경에서 최신화하는 것을 의미합니다.
Ex) origin
이라는 이름의 주소의 파일들을 main
branch 에 최신화하기
$ git pull origin main
Git branch
main
branch 뿐만 아니라 다양한 branch에서 작업할 수 있습니다.- 다른 branch 에서 작업한 것을 바탕으로 다시
main
branch 에merge
(합치기) 할 수도 있습니다.
- 다른 branch 에서 작업한 것을 바탕으로 다시
Ex) test
라는 branch 추가하기
$ git branch test
Ex) 만들어진 branch 확인하기
$ git branch
main
branch 와test
branch 가 있다는 것을 알 수 있습니다.- branch 왼쪽에
*
는 현재 branch의 위치를 의미합니다.
- branch 왼쪽에
Ex) test
branch 로 들어가기
$ git checkout test
- 다시
git branch
를 입력하면 아래와 같이test
branch 로 옮겨진 것을 알 수 있습니다.
Ex) test
branch를 main
branch 에 merge
시키기
git checkout
으로main
branch에 다시 돌아온 후 아래와 같이 입력하시면 됩니다.
$ git merge test
728x90
'[AI] > Data Engineering' 카테고리의 다른 글
[Data Engineering] - Mindmap (1) | 2021.05.16 |
---|---|
Environment & Database (2) - Docker (0) | 2021.05.16 |
Environment & Database (3) - Relational Database (0) | 2021.05.16 |
Environment & Database (4) - SQL Property & Syntax (0) | 2021.05.16 |
Environment & Database (5) - Further SQL & NoSQL Database (0) | 2021.05.16 |