본문 바로가기
IT공부/종합

Git, GitHub, source tree 그리고 Eclipse

by 놀고싶은 노자 2020. 12. 23.

※본 글은 '얄팍한 코딩사전'의 강의 내용을 바탕으로 작성한 것 입니다.

 

Git은 무엇인가?

프로그램을 만들 때 혹은 만들어진 프로그램을 운영할 때 수정을 하게 된다. 

하지만 그러한 과정 속에서 이전에 만들었던 기능을 가져오고 싶은 경우가 발생하기도 하고, 복구를 하고 싶은 경우가 생긴다. 

그리고 누군가 실수를 한 것이 있는지 과거 내역을 확인 해야할 때도 있다. 

그래서 중간중간 저장을 해야하는데 압축을 해서 각각의 상태를 저장하다보면 나중에 찾기도 어렵고, 용량도 많이 소모하게 된다. 

 

거기에 더해 프로젝트를 진행함에 있어 협업을 하게 되는 경우가 많은데 

Git이라는 버전관리 툴이 그러한 역할을 해준다고 생각하면 쉽다. 

 

Git은 커밋을 하는 순간을 저장해 두는데 전부를 복사하는 것이 아닌 변경된 사항을 기록하는 것이다.

그래서 용량을 많이 차지하지 않고 수정된 내역을 복구할 수도 있게 된다. 

 

그에 더해 작업하고 있는 것에서 다른 버전을 만들어서 진행이 가능하게 Branch라는 가지치기 작업을 할 수 있다. 

가지(branch)를 통해 여러 다양한 시도를 진행해보고 주요 작업라인에 가지(branch)에서 만든 기능을 추가할 수도 있다. 

 

코드를 과거 시점으로 돌릴 수도 있는 기능이 있어 협업하는 과정에서도 유용하게 쓰인다. 

 

Eclipse를 사용할 때는 조금 방식이 다르며, 우선은 VSCode 기반으로 사용하는 법을 설명하겠다.

Eclipse로 사용하는 법은 gasaesososo.tistory.com/9?category=726951 블로그에 설명을 정말 잘해주셨다. 

 

[Git] 이클립스에서의 Git 사용법(egit) 1

설치한 Git bash를 이용하여 git을 사용할 수 있지만 우리는 이클립스에서 제공하는 egit을 이용하여 git을 사용한다. 이클립스 말고도 Visual Studio, IntelliJ IDEA, Xcode에서 제공하는 툴로 git을 사용할 수.

gasaesososo.tistory.com

 

git-scm.com/

 

Git

 

git-scm.com

위 사이트에 들어가서 git을 자신의 컴퓨터에 맞는 것으로 골라서 다운로를 받으면 된다. 

 

VSCode를 실행하고 워크스페이스를 만든 뒤에 파일을 생성해준다. 

workspace를 만든 뒤 new file을 눌러 파일 생성 그리고 터미널열기

그후 터미널을 열어준다. [ ctrl + ` ]

명령어 pwd를 적으면 현재 터미널의 경로를 알려준다. 

       >git config --global user.name "자신의 이름"

       >git config --global user.email "자신의 이메일"

워크스페이스의 위치가 아니라면 cd를 적고 현재 폴더의 위치로 이동시켜준다.

그리고 git status를 쳐보면 'not a git repository (or any of the parent directiories)라고 뜨는데 git저장소가 없다는 것을 말하고 있다. 

그렇기 때문에 git init을 써서 저장소를 만들어준다.

그러면 Initialozed empty Git repository in _현주소 가 뜨면서 만들어짐을 확인할 수 있다. 

                                     > pwd로 확인하면 path가 사용자까지 인 것을 알 수 있다.

                                     > cd를 써서 현재 워크스페이스의 경로로 이동

                                      (파일 탐색기에서 위치 주소를 복붙해도 좋고, ./Desktop/ComputerStudy/GitTest이런 방식을 써도 좋다.)

                                     > git status로 확인

                                     > git init으로 git 저장소 생성

여기까지 오면 이제 git을 통해 파일을 관리할 수 있게 된 것이다.

파일을 생성하고 저장한 뒤 git status를 입력하면

아직 커밋이 안 되었고, 커밋할 것이 있음을 알려준다. 친절하게 커밋방법도 알려주고 있다.

따라서 git add를 치는데 여기서 git add 뒤에 -A를 입력하면 변경사항을 모두 커밋할 수있게 올려두게 된다. 

(-A를 쓰지 않으면 각 파일의 이름을 뒤에 입력(FirstMemo)해야 한다. 

그러면 이렇게 status를 다시 확인했을 때 stage에 올라가 있음을 확인할 수 있다. 

stage에 올라가 있는 것을 취소하려면 

git reset(stage에 있는 모든 것)을 입력하거나 git reset FirstMemo(파일명)을 입력하면 된다. (reset은 차후 추가 기능이 있다.)

reset을 해서 stage에서 내린 결과

stage에 저장할 것이 올라가 있다면 git commit -m "frist time commit" 을 입력한다. 

-m은 메세지를 가리키면 뒤의 "first time commit"이라는 메모를 남기게 된다. (보통 수정사항을 적으면 된다.)

그러면 1 file changed, 1 insertion(+)라고 뜨면서 변경 사항을 알려준다. 

git status를 쳐보면 working tree가 깨끗함을 알수 있다. 

git log를 쳐서 git의 활동 내역을 볼 수 있는데 

언제 누가 작업을 했는지 커밋한 내역을 확인할 수 있다.

 

이제 가장 기본적인 git을 알아보았다. 

이제 이렇게 만들어진 저장소를 이전의 상태로 되돌리거나, 새로운 가지치기, 병합 등이 있다. 

git reset "(git log내역에서 이동하고 싶은 위치의 해쉬코드 앞자리 6개 ex. 5591e4)" --hard

 >> __ 해당 위치의 상태로 변환_ 사이에 있던 변경사항은 전부 삭제

git revert "(log로 검색해서 가장 최근 커밋의 해쉬코드 앞 6자리)"

 >> __ 해당 위치의 내용을 되돌려 놓음, 삭제되진 않는다. 좀더 뒤로 돌리고 싶다면 revert 후 한번더 revert를 하면되는데

 >> 한번 revert를 하고 나면 log를 확인할때 revert 내역도 뜨게 된다. 그렇다면 한개 더 뒤에 있는것을 입력할 수 있다.

  (revert는 한칸씩 뒤로 가는 느낌이려나.. ?)

git branch 는 가지를 하나 더 만드는 것으로 메인(master)가지에 작업할 수 없는 새로운 버전을 만들 수 있다.

>> master에 전혀 영향을 주지 않으며, 왔다갔다 이동이 가능하다 

>> git checkout (branchname)

>> 그러다가 만족하는 기능이 있다면 master에 병합도 가능하다. 

>> merge 혹은 rebase(rebase는 시간 순서를 branch에 있던 것들을 전부 최신으로 옮겨서 한가지의 줄기로 볼 수 있게 하는 방법) 

 

git에 대한 설명서는 git 사이트에서 무료로 베포하고 있다. 한글 pdf도 다운받을 수 있으니 다운받아서 읽어보는 것을 추천한다. 

git-scm.com/book/ko/v2

 

Git - Book

 

git-scm.com

 

여기까지 내가 아는 선에서의 git을 간단히 정리해보았고 마무리 하려한다. 

더 많은 정보를 알고 싶다면 

coding-groot.tistory.com/ 코딩그루트 님의 블로그에 더많이 자세히 정리되어 있다.

 

Coding Groot

코딩 블로그

coding-groot.tistory.com

GitHub는 무엇인가?

git은 로컬저장소를 바탕으로 주로 쓰이는데 작업 내역을 로컬 저장소가 아닌 원격 저장소에 저장할 때 쓰이는 저장되는 공간을 제공하는 서비스이다. 

많은 프로그래머, 개발자들이 사용하고 있으며, 

여기에서 다양한 프로젝트가 어떻게 만들어지는지 소스코드를 볼 수 있고, 공유할 수도 있다. 

개방된 것에는 프로젝트에도 참여가 되며, 

다양한 기능, api도 소스코드를 받아볼 수 있다.

 

github에 가입하고 

원하는 repository명을 적어주고, public과 private중 원하는 것에 체크 후 생성하기를 누르면 된다. 

public는 공공연히 다른 사람들이 볼 수 있고, private는 허가된 사람만 볼 수 있다. 

repository를 개설하면 주소가 나오게 된다. 

eclipse를 사용하거나 sourceTree를 사용할 때에는 위의 주소를 사용할 것이며

터미널로 할 때에는 

아래의 명령어를 사용하면 된다. 

terminal을 열고 git remote명령어를 치면 원격 repository가 있는지 확인할 수 있다.(없으면 아무것도 뜨지 않음)

그렇다면 위의 명령어를 입력해주고

github의 유저명과 git 비밀번호를 입력해주면 된다.

 

이렇게 github에 연결을하면 commit을 한 뒤에 git push origin main이라고 입력해야한다. 그랬을 경우에마 github에 저장된다.

 

소스를 내려 받을 때는 git clone 후 github에서 repository의 주소를 복붙해서 불러오면되는데 

이런 주소를 쳐주면 받아오게 되고

cd를 이용하여 해당 폴더 위치로 가면 똑같이 사용할 수 있게 된다. git add, commit, push를 사용하여 원격 저장소 이용가능!! 

일단은 여기까지 정리하겠다.

더 필요한 정보는 

얄코님이나, 코딩그루트 님의 블로그를 확인하면 될듯하다. 그럼 이만

SourceTree란?

터미널의 명령어가 익숙하지 않거나 터미널로 수행하기 어려울때 사용하는 소프트웨어라고 보면 된다.

소스트리 뿐만 아니라 깃허브에서 만들어진 깃허브 데스크도 있다. 

사용방법은 www.yalco.kr/ 얄코님의 깃, 깃허브 영상을 보면 쉽게 따라할 수 있다. 

 

얄코 홈

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr