¡. 깃, GIT
처음 코딩을 시작할 때 굉장히 많이 듣게 되는 말이다. 인터넷에 이 내용에 대해서 검색을 해 보면, 내가 작성한 코드의 '버전관리'를 하기 위해서 깃헙을 사용한다고 하는데, 처음 듣는 사람들의 입장에서는 잘 이해가 되지 않는다. 그냥 막연하게 내가 이전에 썼던 코드들을 다시 볼 수 있는 건가?라는 생각만 든다. 나도 지금 깃에 대해서 다 아는 것은 아니지만, 아예 이 내용을 처음 보는 초보자들을 위해서 현재 알고 있는 깃의 버전관리에 대한 내용을 설명하자면 다음과 같다.
ㄱ. 깃을 이용하면, 이전에 내가 썼던 코드들을 그때 상태로 모두 확인할 수 있다.
ㄴ. 이전에 썼던 코드들을 각기 다른 파일의 형태로 저장하지 않고, 한 파일 내에 이전의 코드들이 저장된다.
ㄷ. 다른 사람과 협업할 때 깃을 이용하면 일일히 코드를 복사+붙여 넣기 하지 않고, 손쉽게 완성본의 코드를 작성할 수 있다.
¡¡. 깃헙 or 깃허브, GITHUB
많은 사람들이 이미 들어봤을 GITHUB, 깃헙이다. 개발자들이 많이 사용한다고는 하는데, 깃헙이 필요한 이유는 인터넷이 필요한 이유라고도 볼 수 있다. 만약 내가 이 글을 word파일에서만 작성하고 블로그에 업로드하지 않았다면 컴퓨터를 잃어버리면 이 글을 다시 볼 수 없겠지만, 인터넷 블로그에 업로드 함으로써 컴퓨터를 잃어버렸더라도 언제든지 다시 이 글을 볼 수 있다. 마찬가지로, 코드에서 깃을 만든 다음에 가지고만 있으면 'local'에 저장된 자료이기 때문에 불의의 사고로 코드가 날아갈 수도 있지만, 깃헙에 업로드한 코드의 경우에는 언제든지 정보에 접근할 수 있고, 찾아볼 수 있다. 인터넷에서 티스토리의 역할이 내가 쓴 글을 보관하는 것이라면, 깃헙이라는 인터넷에서 내가 쓴 코드를 보관하는 역할은 'repository'라고 하는 가상의 저장소가 한다. 사실, 깃을 사용하지 않고도 깃헙에 코드를 올릴 수는 있다. 하지만, 이 방법을 사용하려면 그때그때 repo에 있는 파일을 지우고 다시 드래그 앤 드롭으로 업로드해야 한다는 단점이 있기 때문에 git을 사용한다.
코드의 버전, 혹은 깃을 갱신하는 과정을 'commit, 커밋한다'라고 하고, 위의 repository(repo)에 코드를 업로드 하는 과정을 'push, 푸시한다'라고 한다. 이 과정을 위해서는 우선 깃헙에 가입하고 repo를 생성해야 한다.
#깃헙 가입하고 Repository 생성하기
깃헙에 가입하고 오른쪽 상단에 프로필 버튼을 누르면 다음과 같은 메뉴들이 나온다.
여기서 your repository에 들어가서 초록색 new버튼을 누르면 새로운 repo를 생성할 수 있다. repository name만 원하는 repo의 이름으로 만든 다음에 다시 초록색 create repository를 누르면 repo가 완성된다. 그다음은 repository에 들어가서 오른쪽의 초록색 code버튼을 누르면 HTTPS와 SSH의 주소를 복사하면 repo의 주소까지 획득하게 되어서 git과 연결할 작업만 남게 된다.
#GitBash 다운받고 사용자 정보 설정하기
git을 생성하기 위해서 git bash를 다운받아야 한다. 참고로, 이 글은 윈도우를 기준으로 작성한다. git-scm.com/
여기에 들어가서, 왼쪽에 있는 download 2.3x.xx for windows 버튼을 클릭한다. 그러면 자동으로 다운로드가 실행되는데, 기본으로 설정되어 있는 체크버튼대로 next버튼을 눌러서 진행하면 된다.
만약 잘 설치가 되면, 코드가 들어있는 파일을 우클릭하고 'git bash here'이라는 옵션을 클릭해서 git을 실행할 수 있다.
git bash here를 실행시키면 처음에는 다음과 같은 커맨드 창이 나타난다.
여기서 가장 처음에 해야 하는 작업은 사용자 정보를 설정해 주는 것이다. 아래의 정보를 정확하게 입력해서 최초 사용자 설정을 해주자.
git config --global user.name "사용자 이름"
git config --global user.email "github에 등록된 사용자 이메일"
을 띄어쓰기 단위까지 정확하게 입력한 뒤에,
git config --list를 입력하면 아래와 같이 깃이 설정된 내용을 확인할 수 있다.
#Git과 GitHub의 Repository 연결하기
이제부터는 정말 중요한 깃과 repository를 연결해주는 작업이다. 내가 생각하기에 여기서 가장 중요한 개념은 '하나의 Repository에는 하나의 Git Initialization이 필요하다'이다. 바로 밑에서 자세히 더 설명하겠다.
git에서 사용자 정보를 등록하기까지 마쳤으면, 그다음은 내가 여기서 git을 생성할 것이다 라는 신호를 주는 작업이 필요하다.
git init
이라는 명령어를 입력해서 깃을 깨워주는 작업인데, 위에서 말한 하나의 repository에는 하나의 git init이 필요하다는 개념이 여기서 중요하게 작용한다. 여기서 git init을 해 주면, 그 폴더가 repo가 된다. 다시 말해, 그 폴더의 안에 여러 다른 하위 폴더를 만들고 각기 다른 코드를 넣을 때도 git init을 여러 번 해줄 필요가 없다는 것이다. 왜냐하면 하위 폴더는 repo가 아닌, repo안에 있는 directory, 디렉토리라고 부르는 그냥 폴더이기 때문이다. 초기에 나는 이 개념이 헷갈려서 git init을 여러 번 해서 오류가 생겼었다. 만약 git init을 여러 번 해줬다면 폴더의 보기옵션에서 숨긴 항목 옵션을 클릭해서 숨겨진 파일인 .git파일을 삭제하면 된다.
깃 커맨드에서는 git init을 한 다음에 깃헙과 연결을 해 줘야 하는데, 이때 내 컴퓨터에 깃이 생성된 폴더와 깃헙의 repo를 구분하기 위해서 각각을 local repository, remote repository라고 부른다. remote repository는 깃헙에 있는 가상의 원격 저장소라는 의미이다. 연결을 위한 명령어는 다음과 같다.
git remote add origin repo주소
의미는, 'remote repo주소를 내 git에 origin이라고 등록함'이다. origin은 내가 연결하려는 remote repo의 별명이다. 매번 깃을 업로드할 때마다 repo의 주소를 일일이 입력하기 귀찮으니, origin이라는 별명으로 등록하겠다는 의미로 받아들이면 된다.
git remote -v를 입력해서 올바르게 생성됐는지도 확인할 수 있다.
#add, commit, push, pull
이제 거의 다 왔다. 마지막으로는 연결된 repo에 내 코드와 깃을 올리는 방법이다. 순서는 매우 간단하다.
우선 git에 내 파일을 담아야 한다.
git add 파일이름
위 명령어를 이용해서 git에 내 파일을 추가한다. 만약 여러 파일을 만들었는데 하나씩 add 해주기 귀찮다면
git add .
를 이용해도 된다. 사실 하다보면 add .를 더 많이 이용하는 것 같다.
add는 git에 단순히 담겨만 있는 상태이다. 따라서 이 상태로는 버전관리에 들어가지 못하기 때문에 담겨있는 내 파일을 등록해줘야 하는데, 이 작업이 커밋이다.
git commit -m "커밋메시지"
위 명령어를 이용해서 파일, 혹은 코드를 git에 등록해준다. 커밋 메시지에는 내가 어떤 내용을 수정했는지에 대한 간단한 설명을 마음대로 쓸 수 있다. 이제부터 등록된 코드는 버전관리에 들어가고, 따라서 지금 작업하던 내용이 유실되더라도 언제든지 커밋 코드를 이용해서 이전 단계로 돌릴 수 있다. 커밋 코드는
git log
를 통해서 확인할 수 있고, 영문과 숫자로 된 굉장히 긴 시리얼 넘버이다. 통상 앞 6자리만으로도 충분히 겹치지 않게 내용을 특정할 수 있고, 다음과 같은 명령어를 입력하면 된다.
git reset --hard 커밋코드
마지막으로, 담은 코드를 깃헙에 올리고 내려받는 내용이다. add - commit까지 완료했으면 push를 이용해서 깃헙에 올리기만 하면 된다.
git push origin master
를 이용하면 되는데, 이때 master는 현재 내가 작업하고 있는 branch의 이름이다. 이 branch의 개념에 대해서는 이후 GIT KRAKEN글에서 추가로 더 설명하겠다.
같은 방식으로, 깃헙에 올라와 있는 내용을 내가 다운받고 싶다면
git pull origin master
이라는 명령어를 쓰면 된다.
나중에 알게 된 사실이지만, 이렇게 깃으로 하는 작업들을 다른 툴을 이용해서 하면 훨씬 편하다. 예시로, GitKraken이라는 툴이 있는데 로고의 문어도 귀엽고 사용도 직관적이기 때문에 앞으로는 이 툴을 사용할 것 같다. GitKraken에 대한 내용은 뒤에서 또 다룰 예정이다.
지금까지 깃과 깃헙을 처음 보는 사람들을 위해서 간략하게나마 세션의 리뷰를 적어보았다. 나도 잘 모르지만 장님이 장님을 인도하는 식으로 작성한 글이기 때문에 부족한 부분이 굉장히 많은 것 같다. 그래도 아무것도 모르고 막막했던 감정을 살려서 최대한 무엇을 내가 몰랐는지에 집중하며 작성했기 때문에 이 글이 누군가에게 조금의 도움이라도 되면 좋겠다고 생각한다.
댓글 영역