1.개요
=>git:소스 코드 버전 관리를 위한 tool
=>git hub,git lab:git을 활용할 수 있는 웹 사이트
2.용어
=>repository:하나의 큰 저장소,기본단위
=>branch:repository안에 만드는 작은 저장소 - 실제 저장 단위
=>origin:최초의 코드
=>remote:github이나 git lab 같은 원격 저장소
=>commit:변경 내용을 적용
=>push:로컬의 내용을 remote에 업로드
=>pull,fetch:remote의 변경 내용을 로컬에 반영
=>clone:branch의내용을 로컬로 가져오는 것
=>merge:변경한 내용을 하나로 합치는 것
3.github 사용하기 위한 준비
1)git hub에 회원 가입
2)git을 설치
=>윈도우: https://git-scm.com/downloads 에서 다운로드 받아서 설치
=>Linux(Ubuntu):sudo apt-get update
sudo apt-get install git
3)설치 확인
4)git의 기본 branch 이름을 main으로 설정
=>이 작업을 하지 않으면 기본 브랜치 이름이 master
=>git hub을 사용하는 사람들은 대부분 기본 branch 이름을 main으로 변경
git config --global init.defaultBranch main
명령어를 칠 때 메모장에다가 작성하고 확인하고 복사한뒤 실행해야됨. 왜 그렇게 해야되나? 명령어를 직접 떄리는걸 보면 오류가 나더라도 찾을 수 없음. 따라서 명령어를 메모장에 저장해놓으면 뭐가 틀리는지 확인 할 수 있음.
5)git에 코드 저장할 때 기록되는 이름과 이메일을 설정
git config --global user.name 이름
git config --global user.email 이메일
6)설정 확인
cat .git/config(윈도우즈에서는 안됨)
git config --list(윈도우즈)
=>이름 앞에 .이 있으면 유닉스에서 숨김 파일이나 디렉토리 (윈도우즈에서는 보임)
7)현재 디렉토리 내용을 git에 저장
=>현재 디렉토리를 로컬 git에 등록:git init
=>로컬 git 등록 해제
디렉토리 안에서 .git 디렉토리를 삭제
windows 에서는 rmdir .git
그 이외에는 rm -rf.git
8)git에 파일 등록
=>git add 파일이나 디렉토리 이름 나열
=>git add.(현재 디렉토리의 모든 내용을 git에 등록)
9)현재 등록된 파일들을 로컬 git에 업로드
git commit -m "메세지"
3. GIT - HUB에 push
1)Git-Hub 에 Push
=>설치확인 및 회원가입
git --version
=>디렉토리를 로컬에 있는 git에 등록
git init
현재 디렉토리에 .git 이라는 디렉토리가 생성
.git이라는 디렉토리를 강제로 삭제하면 git에 등록 취소
=>git에서 관리할 파일을 등록
git add파일이나 디렉토리 이름을 나열
git add .(디렉토리의 모든 파일 과 디렉토리를 관리)
파이썬과 Node는 이렇게 하는게 별로 좋지 않음. 위에 git add 파일이름 작성하는게 좀 더 좋음
=>현재까지 변경 내역을 로컬 git에 반영
git commit -m "메세지"
=>현재까지 commit한 내역을 확인
git log
=>이전 작업으로 돌아가기
git reset --soft commit값 :이전 내역을 저장은 해놓지만 코드를 수정하지는 않음
git reset --hard commit값:이전 내역을 날려버리고 코드를 수정
=>원격에 저장할 때 파이썬 프로젝트에서 수행할 작업
-.gitignore 파일(업로드 하지 않을 디렉토리나 파일)을 만들어서 가상환경 디렉토리를 등록해서 업로드가 안되도록 합니다.
-pip freeze > requirements.txt 명령을 수행해서 설치한 패키지 목록을 requirements.txt에 저장
=>github.com 에 접속해서 repository 생성:1번만 수행
=>로컬git과 원격 repository 를 연결
git remote add 이름 repositoryurl
관습적으로 맨처음 연결하는 경우는 이름은 origin
=>연결 확인
git remote -v
=>현재 commit을 업로드
git push 이름 브랜치 이름
=>브랜치(레포지(집) 안에 있는 방) 이름 확인
git branch 했을때 *가 있는 이름
=>브랜치 생성
git checkout -b 브랜치이름
=>브랜치 전환
git checkout 브랜치이름
★모르면 이것만 알면 올라간다!!★
git remote add origin 레포지토리url
git push origin main
코드가 바꾸면
git add .
git commit -m"메세지"
git push 이름 브랜치이름
4.GIT 사용하면서 배운것
1)git diff
=>최근 commit이랑 현재 파일이랑 어떤게 달라졌는지 보여줌
j/k 키를 활용해서 조정
종료하고 싶으면 q
근데 버그도 있어서 자주 안쓰임
2)git difftool
=>git diff 보다 시각적으로 보기 좋음
h j k l 이 방향키
:q 아니면 :qa 는 종료
3)git difftool [commit id]
=>특정 commit과 현재 code랑 비교해서 알려줌
4)git graph 설치
=>설치하면 git log 랑 똑같은 화면이 나오고 세부 commit들을 확인할 수 있음
5)git branch [branch이름]
=>이름이라는 사본파일을 만듬
branch기능은 협업에서도 유용한데 같은 프로그램을 여러명이서 만든다고 할 때 각각 branch를 만들어서 미리 개발해볼때 유용함.
6)git switch [branch이름]
=>만든 다른 branch 쪽으로 넘어감
7)git merge [합칠 branch 이름]
=>branch 끼리 합치는 명령인데 조심해서 써야할 부분이
main branch 에 a파일 수정하고 slave branch 에 b파일을 수정하고 나서 merge 명령을 하게되면 아무 문제 없음
하지만 main branch 와 slave branch에서 똑같은 파일에 똑같은 줄을 수정한 경우에 충돌이 나버림 => 컴퓨터에서 헷갈림
충돌 해결법 1. 원하는 코드 남기고 2. git add 3.git commit 하면 끝
'project > 개인공부' 카테고리의 다른 글
KoBERT를 활용한 감정분류 모델 (0) | 2024.04.14 |
---|---|
2022년도 Melon가사 분석을 통한 감정분류 (0) | 2024.04.01 |
생성형 AI 란 무엇인가? (0) | 2024.02.11 |
기본정렬 알고리즘 (Sorting 기법 정리(Bubble,Selection,Quick,Heap,Insertion,Merge)) (1) | 2024.01.02 |
Web crolling이라 쓰고 사실 scraping인 멜론 TOP#100 (0) | 2023.12.29 |