현재 현직자들도 가장 많이 사용한다는 git에 대해 학습하였다. github홈페이지는 가지고 있었지만 실제로 git bash를 활용해서 사용해 본 적은 처음이었다. 앞으로도 사용할 수 있게 잘 정리해 두어야 겠다.
자신의 OS에 맞춰서 활용하면 된다고 한다. 나는 Window를 사용하기 때문에 cmd나 bash와 같은 터미널과 비슷한 창에서 직접 진행하기 보다 vscode의 파일 뷰어와 터미널을 동시에 활용할 수 있는 장점을 활용하기로 했다.
처음으로 vscode를 준비하고 git을 설치해야 실행이 된다고 한다. git homepage에서 설치하고 진행하기를 권장한다.
git을 설치하고 vscode 터미널 창에 다음과 같이 입력하면 이렇게 뜬다.
이러면 깃을 사용할 준비는 완료가 되었고, 개인의 깃 허브 계정이 있어야한다. 계정도 없이 진행하려는 사람이 이 글을 볼거라 생각이 들지 않는다.
계정 등록하기에 자세히 설명되어 있기 때문에 나는 스킵하기로 한다.
자신의 깃허브마다 레퍼지토리가 존재한다. 강사님 말로는 레포 만들기 전부터 여러가지 보안에 대해 설정할 수 있다고 하지만 아무것도 알지 못했기 때문에 그러려니 하고 넘어가버렸다.
가져올 레퍼지토리 창을 띄우고 아래 사진에 보이는 것 처럼 code를 누르면 다음과 같이 창이 나타난다.
https의 주소를 복사하면 가져와서 작업을 진행할 레포 준비가 다 된것이다. 이제 터미널로 가서
git clone https://github.com/[자신의 계정이름]/[계정안에 생성한 레포].git
cd [레포 이름]
을 입력하게 되면 자신이 생성한 레포를 내 로컬 컴퓨터로 가져올 수 있고, 해당 레포안의 폴더에 진입하게 된 것이다.
나는 이미 만들어 둔 레포 폴더가 있기 때문에 이미 존재한다고 뜬다. 이것은 나중 이야기인데 레포 안에 또다른 레포 폴더를 넣는것은 나중에 큰 문제를 일으킬 수 있다고 한다. 이렇게 폴더 안으로 진입을 성공하게 되면 내가 원하는 레포를 불러오기는 성공한 것이다.
폴더 안으로 들어가보면 깃허브에서 볼 수 있던 목록을 그대로 확인할 수 있었다.
VScode는 파일을 터미널로 열지 않고 원하는대로 작업할 수 있다고 한다. 따라서 나는 새로운 파일 peeo.py
를 생성하여 Hello world!
를 출력하는 py
파일을 만들었다.
다음과 같이 입력하면 어떠한 변동 사항이 생겼는지 쉽게 확인할 수 있다.
git add로 다음과 같이 등록해주면 된다.
이 과정이 로컬에서 스테이지로 올리는 과정이라고 한다. 이것이 정확한지는 모르겠다만 나는 그렇게 알아들었다. 이것을 버전으로 등록해줘야 한다. 따라서 다음과 같은 명령어를 입력하면 완전히 올릴 준비가 다 된다고 한다.
git commit
or
git commit -m "[작성 행동]: [작성 내용]
두 방법 모두 비슷하지만 강사님은 위의 내용을 추천하셨다. 아래 내용은 오타 내기도 쉽기도 하고 나중에 확인했을 때 수정하기도 쉽지 않아서 차라리 직접 입력하고 여닫을 수 있는 방법을 선호하셨다. commit에 점으로 채우면 팀장님이나 부장님과 같은 높은 상사와의 커피타임을 자주 가질 수 있다는 소문이 있다. 정말로 따듯하다 못해 뜨거운 대화를 나눌거라고 하셨다 ...
따라서 위의 명령어를 입력하면 다음과 같은 창이 나오게 된다.
여기에서 i키를 누르게 되면 아래의 검정 줄이 --INSERT--
표시로 바뀌게 된다. 작성 행동은 다음과 같은 용어가 보편적으로 사용된다고 한다. 코드 안에서 if와 같은 조건문의 표현 방식을 바꾸는건 refac:
을 쓴다고 한다. ppt만드시다가 수정하기 귀찮으셨나 보다...
파이썬 파일 peeo.py를 생성한 것이기 때문에 feat라는 문구와 함께 어떤 것을 만들었는지 간단한 설명과 함께 입력을 종료했다.
여기서 작성을 다 했으면 esc
를 누르고 :wq
를 입력하고 엔터를 누르면 저장 후 종료라고 한다. 콜론 기호를 입력하는게 익숙하지 않아서 나는 이 화면을 4번째까지 볼때만 해도 뭐가 잘못된줄 알고 처음부터 다시 만들어서 진행했다. 이런건 누가 친절하게 알려주지도 않는다. 나같은 사람은 어떻게 하라고 ,,,
저장 후 종료를 하면 commit을 하기 전 화면으로 돌아가서 다음과 같이 뜨게 된다.
이렇게 되면 올릴 준비가 끝났다. 다음과 같은 명령어를 통해 깃허브에 전달하자.
git push -u origin [branch]
branch는 트리 구조의 가지치기 처럼 가지를 뻗어나가는 역할을 한다. 결국 합쳐지면서 사라지는 가지긴 하지만 체크포인트 처럼 작업의 정보를 소실하지 않게 진행해준다 한다. branch의 내용은 다음에 다뤄보도록 하자.
이렇게 입력하면 다음과 같은 창을 볼 수 있다. 다른 화면이 보인다면 add나 commit을 제대로 했는지 다시한번 확인해보자
이렇게 깔끔하게 올라가 있는 모습을 확인할 수 있다.
또한 변경 내용을 다른 곳에 가져오려면 다음과 같은 명령어가 필요하다.
git fetch [지정 이름 (보통 내가 클론한 주소: origin)] [branch: 보통 main을 많이 가져온다.]
git merge [selected bracnh]
다음과 같은 명령어를 입력하면 깃허브에 변경되어 있는 레포 내용을 모두 가져올 수 있다.
작동을 완료하면 다시한번 github에 있는 레포와 나의 로컬 레포가 동일한 것을 확인할 수 있다.
또한 다른 사람이나 같은 조직의 메인 계정에 있는 레포도 가져올 수 있는데 다음과 같이 입력하면 가져올 수 있다고 한다.
git remote add [지정이름: 보통 upstream이라 많이 지정한다 함] [깃허브 주소]
git remote -v (어떠한 지정 경로가 있는지 확인할 수 있다. origin: 내가 clone한 주소로 보통 지정)
이전에 다른사람의 레포를 가져오려면 fork 기능을 활용하는데 다른 사람의 github 페이지에 보면 다음 버튼을 누르면 가져올 수 있다.
이렇게 복제해서 나의 레포에서 작업한 뒤에 원본으로 올려보내는 방법이다. 이 과정은 branch와 함께 다음에 작성해보기로 하자.