Git & Github

초이지수·2022년 4월 6일
0
post-thumbnail

너와! 나의! 연결! 고리!


🙋‍♀️ Git이란?

  • VCS = version control system
    분산 버전 관리 시스템! = 프로젝트 파일의 변경 사항을 추적하는 시스템!
    (원래는 Linux 소스코드를 관리할 목적으로 개발 되었다. )

🤔 코드 버전 관리를 하는 이유는?

같은 파일에 대한 각기 다른 버전을 보관할 수 있기 때문에!

  1. 수정할 때마다 파일을 새로 만들면 관리가 힘들기 때문에
  2. 언제든 이전 버전의 코드로 돌아갈 수 있기 때문에
  3. 소스 코드가 변경된 이력을 남기기 위해
    (그 코드를 짠 사람이 오류의 원인을 가장 잘 알 수 있기 때문에)
  4. 하나의 프로젝트를 두고 여러명의 개발자들이 협업할 수 있기 때문에

🙋‍♀️ GitHub란?

  1. Git을 사용한 프로젝트들의 원격 저장소
  2. 개발자들의 Social Network

🤔 Git과 Github는 무슨 차이일까?

  • Git은 프로젝트의 버전관리를 도와주는 시스템
  • Github은 Git을 이용해 버전관리를 한 프로젝트를 관리하게 해주는 호스팅 서비스 !

🔥 Repositories (저장소)

Git으로 관리하는 프로젝트 저장소 (폴더라고 생각하면 됨!)

  • Local repository : 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • Remote repository : 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버)버전의 프로젝트 저장소. 팀에서 작업할 때 특히 유용.
    이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수 있다.
    로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용할 수 있는 곳이다!

🔥 Commit

프로젝트의 현재 상태를 나타내는 체크포인트 또는 스냅샷으로 생각하면 된다!
현재 버전의 코드를 커밋에 저장한다고 생각하면 됨!

커밋 히스토리에 필요한만큼 커밋을 생성 할 수 있으며, 커밋 간 앞뒤로 이동하여 프로젝트 코드의 다른 변경사항을 확인할 수 있다.

일반적으로 커밋을 남기는 시점은 특정 내용, 기능을 추가한 후 or 수정 사항을 적용한 후


🔥 Github Push

내가 작업한 걸 깃허브에 올리겠다!

GitHub token 설정
GitHub에서 기존 터미널 상에서 아이디와 비밀번호로만으로 push를 사용할 수 있었던 방법을 보안상의 이유로 막아버렸따,, GitHub token 설정 해야 함!

근데 나는 무슨 이유인지 모르게찌만,,
아이디치고 토큰 비밀번호 대신 복붙하니까 됐음.?


🌎 기본적인 명령어

  1. git 시작 : git init
    맨 처음에 프로젝트 올릴 때 (생성한 장고 프로젝트를 git으로 관리 할 수 있도록 초기화 한다!)

  2. gitignore
    공유하고 싶은 소스와 공유하고 싶지 않은 소스를 구분하기 위해 설치된 디렉토리에 .gitignore 파일을 생성해서 관리!

  1. git 상태 확인 : git status
  2. 파일 수정 이력 기록 준비 : git add . (중간저장! 임시저장 느낌!)
    파일 수정 이력 기록 : git commit
git add .
git commit -m "Add: 앱이름 application"

commit 이력 보기 : git log

  • 상위 폴더 아니고 하위 폴더 만들어서 실행 할 것!
    상위 폴더를 공유하게되면,, 다 공유하게 됨...

  • commit을 날리면 복구를 할 수 없음!

  1. git push 해주기
git push origin 브랜치이름

🔥 Branch

  • 브랜치 생성 : git branch 브랜치이름
  • 해당 브랜치로 이동 : git checkout 브랜치이름

🔥 Applicaton

  1. settings.py 설정 후 app 생성
python manage.py startapp 어플이름
  1. settings.py installed_app에 추가
#settings.py

INSTALLED_APPS = [
...
    '어플이름', 
]
profile
닫혀 있어서 벽인 줄 알고 있지만, 사실은 문이다.

0개의 댓글