본문 바로가기
project/개인공부

GIT 사용법

by 왕방개 2024. 1. 26.

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 하면 끝