Git은 버전과리를 위한 [소프트웨어]
Github는 Git으로 저장돼서 원격전송된 내용들이 저장되는 [공간을 제공하는 서비스다.]
<Git이 카메라라면 Github는 유튜브>
"Git"
왜 Git을 사용하나?
시간여행이 가능해진다. (과거로 돌아갈 수 있다!)
그래서 버전관리가 편리하다.
또 협업을 하기에 편리하다.
준비물
1. Git https://git-scm.com/
2. IDE ( intelliJ / VSCode / Pycharm 등 선택하여 사용)
3. Sourcetree https://www.sourcetreeapp.com/
📚 명령어 정리Git 저장소 생성
깃 생성
git init
내 정보들 입력
git config -g user.name “(내 이름)”
git config -g user.email “(내 메일주소)”
폴더 내 변화들과 캡슐 상태 확인
git status
폴더 내 변화 캡슐에 담기 (스테이지)
git add -A
변화를 담은 캡슐 묻기 (현 상태를 저장)
git commit -m “(적어둘 내용)”
git 상태들 확인(일련번호 등)
git log
특정 시점으로 돌아가기 (복구불가능)
git reset (돌아갈 커밋의 일련번호 앞 6자리) --hard
특정 상태로 돌아가기 (변화를 상쇄)
git revert (상쇄할 커밋의 앞 6자리)
새 평행우주(브랜치) 만들기
git branch (새 브랜치명)
만들어진 브랜치들 보기
git branch
특정 브랜치로 이동
git checkout (브랜치명)
브랜치 만들고 해당 브랜치로 이동
git checkout -b (브랜치명)
다른 브랜치의 변경사항 가져오기
git merge (대상 브랜치명)
다른 브랜치의 변경사항 가져오기(이력 깔끔히)
git rebase (대상 브랜치명)
브랜치 삭제
git branch -d (삭제할 브랜치명)
- d는 대소문자 무관합니다.
명령어 출처 : https://www.yalco.kr/25_git_tutorial_1/
"Github"
파이참을 주로 사용하기 때문에
PyCharm(유료버젼)에서의 Github 공유를 정리하려고 한다.
먼저 Find Action 단축키를 사용한다.
검색창에 share Project on Github 입력후 Enter
PyCharm에 깃헙 아이디와 비밀번호를 한번 입력하면 그 후에는 로그인을 따로 할 필요없이
레파지토리를 만들고 커밋, 푸시 모두 할 수 있다.
Share 버튼을 누르면 이렇게 commit팔 파일들을 선택할 수 있는 창이 뜬다.
파일을 선택하여 추가해준다. 이과정에서 불필요한 파일들은 빼고 관리 할 수 있는 ignore파일을 사용하면
편리해진다.
.ignore를 사용하는 이유는 간단하다. 불필요한 파일이 Gitgub등의 repo에 올라가지 않도록 하는 것!
찾아보다 보니 이런 홈페이지도 있네..WoW 😯
운영체제, 개발환경, 프로그래밍 언어를 입력하면 자동으로 파일을 작성해준다.
https://www.toptal.com/developers/gitignore
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### PyCharm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### PyCharm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/
# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml
# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/
# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$
# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
macOS, Pycharm, Python을 검색하니 이렇게 나온다.
첫 커밋 이후에는 왼쪽 Commit에서 주로 Push까지 같이 진행하고 있다.
Read Me
최근 리드미를 사용하지 않아 아쉽다는 피드백을 받고, 다른분들이 리드미를 어떻게 작성하고 있는지
검색하다 좋은 템플릿이 있어 공유하려고한다.
https://github.com/othneildrew/Best-README-Template
Github에서 readme templates을 검색하니 정말 다양한 방법으로 작성되어 있었는데,
정해진 양식은 없지만 사용언어나 프레임워크의 버젼, 라이브러리, 팀프로젝트였다면 구성원, 프로젝트 설명과 구현내용 등등
깔끔하게 작성되어진 Read Me를 보니 확실히 체계적이고 눈길이 더 간다.
또 이런거 시작하면 욕심나고 집작하게 되는데...허허