본문 바로가기

웹 개발자/Git

[Git] Git을 어느 정도 사용하는 사람을 위한 Cheat Sheet (CLI로 github에 코드 올리기)

반응형
시리즈를 노리고 쓴건 아니었지만 지난주쯤에 이런글을 작성 했었다.
글을 보면 알겠지만 GUI로 git을 사용하는건 상당히 장황한 일이다. GUI로 쓰지 말라는건 아니지만 한두번 정도 커밋하고 올릴 간단한 용도.. 
즉 지속적으로 개발할 코드가 아니라면 GUI에 등록할 필요가 없는 코드도 있다. 사실 GUI도 좋지만 간단한 작업들은 CUI로 처리할 때 정말 그 빛을 발휘할 때가 많다. 스크립트를 잘 짜 놓으면 복잡한 작업도 간단히 끝낼 수 있을 때가 많다. 결론은 가리지 말고 둘다 익혀 놓으면 좋다.

그래서 오늘은 정리겸 작업중인 코드를 CUI로.. 터미널을 이용해서 프로젝트를 push 하는 방법에 대해 글을 써보려고 한다.

우선 작업 중인 프로젝트가 있고. gitignore가 이미 있다고 가정한다.

  • 터미널을 이용해 프로젝트의 위치로 이동한다.
  • git 프로젝트로 만든다.
  • github에 repo를 생성
  • git 프로젝트의 remote repo를 git repo로 설정
  • 모든 파일 일괄 git commit
  • git push 

이정도가 흐름이라고 보면 된다.

자 그럼 터미널로 프로젝트의 위치로 이동한다. 지난 글에도 언급했지만 src가 있는 폴더가 repo에 올라갈 위치라고 생각하면 된다.

$ git init 

명령어를 통해 나의 프로젝트를 git 프로젝트로 만든다. init을 하면 .git 폴더가 생성된다. 이곳에 모든 정보가 담긴다. 만약 이미 이 폴더가 있거나 git을 처음부터 설정하려면 폴더를 지우면 된다. 터미널 에선 하단의 명령어를 이용한다.

$ rm -r .git

만약 git을 CUI로 처음 시작한다면.. global config를 잡아야한다. 장황하게 보이지만.. 그냥 유저 이름과 이메일 주소를 말한다

$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com

사용법은 $ git config 로 볼수 있고
자세한 사용방법은 $ git config —help 참조..
설정 확인은 $ git config -l 

그리고 github에 올릴 repo를 만들어야 한다. 이것은 간단하기도 하고.. 이전글에 자세히 적혀 있으니 생략한다.
repo를 만들고 repo의 주소가 생성 되었다면 나의 프로젝트와 git repo를 연결 시켜줘야한다. git에서는 remote repository라는 표현을 쓴다. 커맨드 명령에선 remote 로 부른다.


$ git remote add origin 나의 repo주소

를 이용하면 나의 프로젝트와 remote가 연결되어 지정된다.
origin 이라는게 있는데. 이것은 초기에 git에 브런치이름을 뜻한다. 그냥 기본적으로 붙여주는 이름이다. 브런치의 개념은 협업을 하거나 하나의 프로젝트가 여러 갈래로 분리되어 개발될 때.. 갈래길, 가지의 그 브런치를 뜻한다.
개인 프로젝트이며 첫 commit 이라면 통상 Origin으로 써주자

잘 되었는지 확인하려면

$ git remote -v 

로 확인 할 수 있다. fetch, push로 두가지가 나오면 정상이다.

이제 변경 사항이 감지된 (처음 이므로 생성된 모든 파일)을 인덱스에 올려야한다.

$ git add 파일명

하지만 우리는 첫 커밋 이므로 파일이 여러개.. 전부 일것이다. (ignore에 걸린 파일을 제외한)
이때는 전체 파일을 추가 할 것이므로 전체를 뜻하는 아스테리크를 넣어주자


$ git add *

tracking 중인 모든 파일이 추가 되었을 것이다.

$ git add -v

인덱스에 추가된 파일을 commit 할 것이다. 처음 하는 커밋은 통상 메시지란에 init을 많이 넣는다. 추후에는 커밋한 코드가 어떤 것인지에 대해 간략하게 적어둔다. (기능을 추가 했다던지. 로직이 변경됫다던지.. 버그를 수정했다던지)


$ git commit -m “git init”

-m은 메세지를 의미하고 그 메시지가 git init 이라는 것


이제 인덱스를 커밋하면 우리의 프로젝트에 git이 commit 되면서 그 변경사항을 remote와 동일하게 맞춰줍니다. (remote에도 반영된다고 생각하면 쉽습니다)


$ git push origin master

git을 origin으로 푸시하고 master로 지정한다는 것이다.
master는 포인터를 의미한다. 

잘 되었는지는 github의 repo로도 확인 할수 있지만 git으로도 확인 할수 있다.

$ git log

축하한다! 이제 당신은 GUI와 CUI로 가장 기본이 되는 작업을 할 수있다!


반응형