Git, Github

박은빈·2022년 10월 4일
0

기초

목록 보기
1/1

Git이란

우리가 코드를 작성하다보면 협업을 해야될때가 있거나 코드에 문제가 생겨서 다시 이전 코드로 되돌아가고 싶을때, 이미 메인 프로그램이 돌아가고 있어서 코드를 추가해서 테스트하기 어려울때가 있다

이럴때 사용하면 편리한 것이 바로 Git(분산 버전 관리 시스템)이다

Git은 코드를 효과적으로 관리할수 있게 해주는 무료 툴이다

설치

Git 메인 홈페이지 다운로드 페이지: https://git-scm.com/downloads

사용방법

먼저 저장소(Repository)를 생성해야한다 저장소를 생성하고싶은 프로젝트 폴더의 경로에서 git init을 입력하면 저장소가 생성된다

git init

이렇게 저장소가 만들어지면 로컬 저장소에는 기본 master브랜치가 존재하게 된다

하지만 master란 이름이 논란이 생겨서 main으로 이름이 변경되었기때문에 main브랜치를 만들고 기본브렌치로 변경해주어야한다

//master브랜치 이름을 main으로 변경
git branch -M main

이렇게되면 기본적인 로컬 git 저장소가 생성되었다

add, commit

이제 git에 파일을 올려보자

먼저 add를 통해 git에 올리고싶은 파일을 선택할 수 있다

이 add를 이용해 변경된 파일들을 한꺼번에 모아뒀다가 commit을 이용해 저장소에 올리는 것이다

//파일을 올리기
git add <파일명>
git add src/Test/Test.java

//여러개의 파일을 올리기
git add <파일명1> <파일명2> <파일명3>...

//자신이 터미널에 위치한 디렉토리의 모든 파일 올리기
git add .

//자신의 저장소의 프로젝트의 모든 파일 올리기
git add -A

//add로 올렸던 파일 취소
git rm --cached <파일명>

이 add는 아직 브랜치로 올라간게 아니라 가기전 인원체크같은 느낌이다

이제 main브랜치로 올리기 위해 commit을 해야한다

git commit -m "<메시지>"

메시지에는 수정된 사항이나 하고싶은 말들을 적는다

이렇게되면 정상적으로 브랜치에 내용이 들어가게 된다

브랜치(branch)

이름 그대로 나뭇가지이다.

나뭇가지는 하나의 굵은 나무기둥에서 시작해 점점 작은 가지로 뻗어나간다

이러한 것처럼 git도 브랜치를 이용해 새로운 기점을 만들 수 있다

만약 우리가 코드를 짜다가 새로운 기능을 넣고싶어졌다

하지만 그 기능을 우리가 짜고있는 main브랜치에 넣어버렸다가 충돌이나 오류가 생겨버리면 참사가 나게된다

이럴때 브랜치를 이용해 main브랜치에서 가지를 하나 만든다

그리고 거기에서 새로운 코드를 넣어 시도해보고 다시 main브랜치에 합치면 안전하게 코드를 추가할수 있다

먼저 branch는 main이 기본 브랜치 즉 나무의 기둥이다.

그리고 여기서 자신만의 브랜치를 만들고 다시 합치는게 가능하다

//브랜치 생성
git branch [브랜치명]

//브랜치 조회
git branch

//브랜치로 이동
git checkout [브랜치명]
git checkout -b [브랜치명] //브랜치를 만들고 바로 해당 브랜치로 이동

//브랜치 삭제
git branch -d [브랜치명]
git branch -D [브랜치명] //브랜치 강제삭제

브랜치에서 또 다른 브랜치를 만드는것도 가능하다 나뭇가지니깐

그러기위해서는 해당 브랜치로 이동(checkout)을하고 브랜치를 만들면 거기서 브랜치가 생성되게된다

merge

브랜치를 이용하고 다시 합치기 위해서는 merge라는 명령어를 이용해야한다

git merge [브랜치]

이 명령어를 입력하면 해당 브랜치가 나온 조상 브랜치로 합체되게된다

Github

지금까지의 git은 로컬저장소에 저장하기때문에 누군가와 공유하거나 협업할수가 없다

하지만 Github를 이용해 간편하게 코드를 공유하며 협업이 가능하다

먼저 자신의 github페이지에서 저장소를 생성하자 그러면 원격 저장소가 생성이된다

그 후 해당 원격 저장소에다가 로컬저장소에 있는 내용을 보내야한다.

또한 원격 저장소에 있는 코드를 로컬 저장소로 받아올 때도 있고 브랜치를 합칠때도 있다

그러기 위해서는 로컬 저장소와 원격 저장소를 연결해주어야한다

//로컬 저장소에 origin(원격 저장소이름)을 추가한다
git remote add origin [원격 저장소 주소]

//연결이 잘 되었는지 확인
git remote -v

push, pull, fetch, clone

push는 깃허브로 커밋한 내용을 보내는 작업이다

//로컬 저장소 브랜치를 origin(원격 저장소 브랜치로) push한다
git push -u origin [로컬 저장소 브랜치 ex) main]

pull은 깃허브에 있는 코드를 로컬 저장소와 병합(merge)하는 것이다

//origin에 있는 코드를 로컬 저장소 브랜치로 merge시킨다
git pull origin [로컬 저장소 브랜치]

fetch는 깃허브 저장소에 있는 코드를 가져오지만 merge시키지는 않는다

git fetch origin [로컬 저장소 브랜치]

clone은 깃허브 저장소에 있는 코드를 복사 붙여넣기를 한다

git clone [원격 저장소 주소]

pull과 clone의 차이점

둘이 비슷하다 하지만 pull은 변경된 내용만 가져오지만 clone은 항상 전체를 가져오게된다

그래서 clone은 모든 코드를 가져오거나 로컬저장소를 처음 만들고 원격 저장소에서 코드를 받아올때 사용하고

pull은 그 다음에 변경된 내용을 받아올때 사용한다

기타 명령어 정리

Git, Github

Git이란

우리가 코드를 작성하다보면 협업을 해야될때가 있거나 코드에 문제가 생겨서 다시 이전 코드로 되돌아가고 싶을때, 이미 메인 프로그램이 돌아가고 있어서 코드를 추가해서 테스트하기 어려울때가 있다

이럴때 사용하면 편리한 것이 바로 Git(분산 버전 관리 시스템)이다

Git은 코드를 효과적으로 관리할수 있게 해주는 무료 툴이다

설치

Git 메인 홈페이지 다운로드 페이지: https://git-scm.com/downloads

사용방법

먼저 저장소(Repository)를 생성해야한다 저장소를 생성하고싶은 프로젝트 폴더의 경로에서 git init을 입력하면 저장소가 생성된다

git init

이렇게 저장소가 만들어지면 로컬 저장소에는 기본 master브랜치가 존재하게 된다

하지만 master란 이름이 논란이 생겨서 main으로 이름이 변경되었기때문에 main브랜치를 만들고 기본브렌치로 변경해주어야한다

//master브랜치 이름을 main으로 변경
git branch -M main

이렇게되면 기본적인 로컬 git 저장소가 생성되었다

add, commit

이제 git에 파일을 올려보자

먼저 add를 통해 git에 올리고싶은 파일을 선택할 수 있다

이 add를 이용해 변경된 파일들을 한꺼번에 모아뒀다가 commit을 이용해 저장소에 올리는 것이다

//파일을 올리기
git add <파일명>
git add src/Test/Test.java

//여러개의 파일을 올리기
git add <파일명1> <파일명2> <파일명3>...

//자신이 터미널에 위치한 디렉토리의 모든 파일 올리기
git add .

//자신의 저장소의 프로젝트의 모든 파일 올리기
git add -A

//add로 올렸던 파일 취소
git rm --cached <파일명>

이 add는 아직 브랜치로 올라간게 아니라 가기전 인원체크같은 느낌이다

이제 main브랜치로 올리기 위해 commit을 해야한다

git commit -m "<메시지>"

메시지에는 수정된 사항이나 하고싶은 말들을 적는다

이렇게되면 정상적으로 브랜치에 내용이 들어가게 된다

브랜치(branch)

이름 그대로 나뭇가지이다.

나뭇가지는 하나의 굵은 나무기둥에서 시작해 점점 작은 가지로 뻗어나간다

이러한 것처럼 git도 브랜치를 이용해 새로운 기점을 만들 수 있다

만약 우리가 코드를 짜다가 새로운 기능을 넣고싶어졌다

하지만 그 기능을 우리가 짜고있는 main브랜치에 넣어버렸다가 충돌이나 오류가 생겨버리면 참사가 나게된다

이럴때 브랜치를 이용해 main브랜치에서 가지를 하나 만든다

그리고 거기에서 새로운 코드를 넣어 시도해보고 다시 main브랜치에 합치면 안전하게 코드를 추가할수 있다

먼저 branch는 main이 기본 브랜치 즉 나무의 기둥이다.

그리고 여기서 자신만의 브랜치를 만들고 다시 합치는게 가능하다

//브랜치 생성
git branch [브랜치명]

//브랜치 조회
git branch

//브랜치로 이동
git checkout [브랜치명]
git checkout -b [브랜치명] //브랜치를 만들고 바로 해당 브랜치로 이동

//브랜치 삭제
git branch -d [브랜치명]
git branch -D [브랜치명] //브랜치 강제삭제

브랜치에서 또 다른 브랜치를 만드는것도 가능하다 나뭇가지니깐

그러기위해서는 해당 브랜치로 이동(checkout)을하고 브랜치를 만들면 거기서 브랜치가 생성되게된다

merge

브랜치를 이용하고 다시 합치기 위해서는 merge라는 명령어를 이용해야한다

git merge [브랜치]

이 명령어를 입력하면 해당 브랜치가 나온 조상 브랜치로 합체되게된다

Github

지금까지의 git은 로컬저장소에 저장하기때문에 누군가와 공유하거나 협업할수가 없다

하지만 Github를 이용해 간편하게 코드를 공유하며 협업이 가능하다

먼저 자신의 github페이지에서 저장소를 생성하자 그러면 원격 저장소가 생성이된다

그 후 해당 원격 저장소에다가 로컬저장소에 있는 내용을 보내야한다.

또한 원격 저장소에 있는 코드를 로컬 저장소로 받아올 때도 있고 브랜치를 합칠때도 있다

그러기 위해서는 로컬 저장소와 원격 저장소를 연결해주어야한다

//로컬 저장소에 origin(원격 저장소이름)을 추가한다
git remote add origin [원격 저장소 주소]

//연결이 잘 되었는지 확인
git remote -v

push, pull, fetch, clone

push는 깃허브로 커밋한 내용을 보내는 작업이다

//로컬 저장소 브랜치를 origin(원격 저장소 브랜치로) push한다
git push -u origin [로컬 저장소 브랜치 ex) main]

pull은 깃허브에 있는 코드를 로컬 저장소와 병합(merge)하는 것이다

//origin에 있는 코드를 로컬 저장소 브랜치로 merge시킨다
git pull origin [로컬 저장소 브랜치]

fetch는 깃허브 저장소에 있는 코드를 가져오지만 merge시키지는 않는다

git fetch origin [로컬 저장소 브랜치]

clone은 깃허브 저장소에 있는 코드를 복사 붙여넣기를 한다

git clone [원격 저장소 주소]

pull과 clone의 차이점

둘이 비슷하다 하지만 pull은 변경된 내용만 가져오지만 clone은 항상 전체를 가져오게된다

그래서 clone은 모든 코드를 가져오거나 로컬저장소를 처음 만들고 원격 저장소에서 코드를 받아올때 사용하고

pull은 그 다음에 변경된 내용을 받아올때 사용한다

기타 명령어 정리

//파일 상태 확인
git status

//현재 위치한 브랜치의 커밋내용 확인
git log (옵션)
옵션
--source 소스표시, --decorate 꾸미기, --stat 간단한 통계
--graph 그래프 형식, --shortstat --stat에서 수정한 파일 추가된 라인 삭제된 라인을 보여준다

//변경 전 내용과 변경 후 내용을 비교할 수 있다
git diff
//commit된 상태와 add된 상태 비교
git diff --staged
//commit간의 상태 비교
git diff [commit해시] [commit해시]
git diff HEAD HEAD^ //가장 최근의 HEAD의 commit와 그 전의 commit 비교
//branch간의 비교
git diff [branch] [branch]
ex) git diff main remote/main
profile
안녕하세요

0개의 댓글