git & github

git 및 github 사용방법

MiaCoder 2024. 3. 18. 20:50

 

 

git과 github는 서로 다른것이다

git는 버전을 관리하기 위한 시스템이고, github는 코드를 온라인에서 관리하게 해주는 서비스이다.

 

git을 온라인에서 사용하게 해줌으로서 코드를 안전하게 보관하고, 팀원들과 온라인으로 코드관리를 하기 편하게 해주는 서비스가 github라고 생각하면 간단하다

 

 

이 둘 차이를 인지하고 각각 사용법을 알아보자

 

git (여기는 git언어를 사용하는 방법이다 .)

 

우선 git는 자바나 파이썬처럼 서치를 해야 사용이 가능하다

 

1. git 설치

https://git-scm.com/

 

Git

 

git-scm.com

위 사이트에서 설치한다

 

2. git 사용

사용중인 IDE에서 터미널 창을 연 다음 아래 명령어를 사용하면 git을 사용할 수 있다.

git 파일들을 기본적으로 해당 프로젝트 파일 안에 생성된다. 

기본적으로 보이지 않는 파일로 설정되어있으나 파일이 거기있다는 정도는 알아두자.

 

git init

git init

git init: git 사용 시작

git을 초기화한다는 내용으로 주로 사용을 시작할 때 사용함.

앞선내용을 지운 후 시작한다고 보시면 좋음.

 

git add 파일명

git add 파일명 : 커밋할 파일 지정

커밋이란 지금까지 내용을 저장하는것이라고 생각하면 간단함

커밋할 파일이름을 쳐도 되고, git add . 이라고 작성하면 모든 파일을 커밋함

 

git commit -m “내용”

git commit -m “내용” :  저장할 내용 지정

커밋할 때 내용을 지정하는 것. 

git commit -m “2024_03_18” 이라고 하면 2024_03_18로 커밋이 저장됨 

 

git diff

git diff : 최근 commit 현재파일 차이점 보여줌

가독성이 떨어지기에 잘 사용하지는 않는다

 

git difftool

git difftool좀 더 개선된 diff

 

 

git branch 브랜치명

git branch 브랜치명 : 브랜치 생성(사본)

본 파일에 바로 새로운 내용을 입력하면 위험하기 때문에 브랜치라는 이름의 사본을 만들어 거기에 저장하는 것이다.

보통 브랜치에서 테스트를 하고 문제가 없다면 본 파일에 합친다.(merge 아래에 설명나옴)

 

git switch 브랜치명

git switch 브랜치명 : 브랜치로 이동

브랜치로 이동한 후 커밋을 해야 해당 브랜치로 커밋이 된다.

 

본파일로 갈때는 git switch main(master)

독립적으로 가능

 

git log —online —all —graph

git log —online —all —graph

브랜치 로그를 그래프 형태로 보기

HEAD는 현재 위치

commit 상황 등을 로그로 볼 때 이용한다.

 

 

브랜치를 main브랜치에 합치는 방법(merge)

git switch main
git merge 합칠브랜치이름

위와 같이 main으로 이동 후 

합칠 브랜치 이름을 입력하여 merge를 한다.

브랜치에서 변경된 내용을 main에 적용한다고 생각하면 간단하다

 

 

main, 새로운 브랜치가 서로 같은 부분을 수정했을 경우 출돌 발생(conflict)

예를 들어 a.py파일의 10번째 줄을 main에서도 수정, second라는 브랜치에서도 수정했을 때 두 파일에서 모두 수정이 이루어졌기 때문에

컴퓨터는 어떤 부분으로 파일을 합쳐야할 지 모르기 때문에 conflict에러가 난다.

해당 부분 중 사용하지 않을 부분을 제거한 후 다시 add 이후 commit 하고 merge를 하면 에러가 사라질 것이다.

 

git merge -d 브랜치명
git merge -D 브랜치명

 

git merge -d  merge 브랜치 삭제

git merge -D merge안한 브랜치 삭제

 

merge를 한 후에는 해당 브랜치가 더 이상 필요 없을 수 있다. 그럴 때 삭제하는 명령어이다.

-D를 대문자로 쓰면 merge를 하지 않은 브랜치도 삭제할 수 있다. 하지만 조심하자

 

git restore

git restore : 해당 파일을 최근 commit 되돌려줌

지금 코드가 이상해져 이전 커밋으로 돌아갈 필요가 있을 경우 사용하자

 

git restore -source 커밋아이디

git restore - source : 커밋아이디 해당 커밋아이디로 되돌려줌

원하는 커밋이 있을 경우 사용하면 해당 커밋으로 돌아간다

 

git revert 커밋아이디

git revert 커밋아이디 : 해당 커밋아이디 커밋을 취소함

커밋을 잘못해서 해당 커밋을 삭제하고 싶을 수 있다.

하지만 기본적으로 git은 커밋을 삭제할 수 없다.

따라서 revert을 수행하면 잘못된 커밋이 "커밋2" 하고 할 때 커밋2의 내용을 기존으로 되돌리고 해당 내용으로 "커밋3"로 저장한다.

 

git reset —hard 커밋아이디

 

git reset —hard 커밋아이디 과거로 모든걸 되돌리기(협업시 사용 안함)

해당 커밋아이디 상태로 모든걸 되돌린다. 

위험하니 협업시에 사용을 안하는 편이다

 

 

github

이번에는 github이다. 

우선 github에 가입하자

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

github.com

그리고 새로운 repository를 만들고, 가이드라인을 따라 IDE터미널에서 명령어를 입력해 새로운 repository에 코드를 올리자

그 이후 작업이다.

처음 올리는 방법

git init
git commit -m "원하는 커밋 이름"
git branch -M main
git remote add origin 리파지토리 주소
git push -u origin main

리파지토리 주소는 깃허브주소창 복사 + .git를 붙이면 된다

 

 

이후 올리는 방법

git init
git commit -m "커밋이름"
git push origin main

 

 

협업하기 

 

 

git clone 깃허브주소

git clone 깃허브주소 -> 코드 내려받기

우선 팀원들은 해당 깃허브에서 코드를 내려받아야 한다.

 

깃허브에 팀원 아이디 공동작업자로 등록

이후 깃허브 -> 해당 리파지토리 -> 공동작업자 등록을 진행한다.

 

이제 협업가능한 상태

 

git pull 깃허브주소

git pull 주소 원격저장소에 있는 내용을 가져와서 로컬 저장소에 합쳐달라는

기본적으로 로컬(본인 컴퓨터)에 github에 있는 최신 내용이 있을 때만 코드를 github로 올리는게 가능하다.

따라서 코드를 올리는 기본적인 방법은 git pull로 깃헙의 코드 내려받기 이후 git push로 코드 올리기

 

 

기본적으로 협업을 할 때는 개인 브랜치를 만든 후 거기서 잘되는지 테스트하고 본파일(main)에 올린다.

본인 브랜치에 코드 올리기 -> 본파일(main) 내용 pull하기(로컬에 본파일 내려받기)

-> git merge 합칠브랜치이름(본 파일에 브랜치 내용 합치기) 로 진행한다.

 

깃허브 코드들의 내용을 합치는 merge는 코드로 하는것이 아니라 보통 github페이지에서 진행한다.

pull request에서 진행한다. 내용은 git에서와 동일하다