[ 05.23 ] git (1) - git upload procedure / 내 작업물 git hub에 업로드 해보기.

이숙영·2021년 5월 23일
0

Linux / Git

목록 보기
2/7
post-thumbnail

[Achievement Goal]

git 과 git hub 차이 알기
git Procedure 이해
terminal 이용하여 git 으로 내 작업물 upload 하기

1. git? git hub?

git : 저장 관리소 개념.
컴퓨터의 용량은 정해져 있는데 작업물은 계속 늘어간다면 어떻게 될까?
컴퓨터는 느려질테고 매번 용량관리를 하느라 정작 신경써야 할 것에 집중을 못하는 사태가 일어날 수 있다. 이를 보완하기 위해 컴퓨터 하드가 아닌,
깃(GIT) 이라는 거대 저장소 웹사이트에 업로드를 하는 것이다.

git hub : git 계의 SNS, 클라우드 서비스의 개념.
git 이 하나의 거대한 저장소라면 그 저장소에 있는 파일들을 다른 사람과 공유 할 수 있는 클라우드 기반의 서비스라고 볼 수 있다.

이렇게 단순 저장 용도의 편리성 뿐만 아니라, 서로 쉽게 공유 및 코드리뷰 등 할수 있어 협업을 많이하는 개발자들 사이에서 없어서는 안될 존재로 자리잡고 있다.

2. git 의 전반적인 procedure.

git 을 이용하는 방법으로 크게 두가지가 있다.
1. 내 작업물 레포지토리에 올리고 공유하기.
(남의 입장에서는 이 부분이 2번과 연결 된다고 볼 수 있다.)
2. 남의 작업물 내 레포지토리로 옮기고 수정한 후 공유하기.

repository 에는 local repository / remote repository 로 나눌 수 있는데, local 에 있는 파일들을 remote 로 연결 시켜주어야 공유가 가능한 상태가 된다.

(1) local repository

내 컴퓨터(work space)에 있는 파일들은 untracked file.
즉, git 과 아무상관없는 상태의 순수한 파일/폴더 이므로 git 과 연결시켜 줄 필요가 있다. 이 과정을 staging area 에 넣어준다고 한다.
터미널의 명령어를 통해 git 과 연결하면 비로소 staged 된 파일이 되며, local 레포지토리가 생성되며 commit 을 해줄 수 있는 상태가 된다.

(2) remote repository

이제, 나만의 원격 레포지토리에 옮겨두는 작업을 먼저 해야 한다.
이미 local repository 의 파일들은 커밋된 파일들의 집합소이기 때문에 원하는 파일들을 push 라는 작업을 통해 내 리모트 레포지토리에 저장할 수 있다. 추가적으로 내가 올려둔 파일을 동료와 쉐어하고 싶다면 동료의 리모트 레포지토리로 pull request 를 보내면 상대방도 내 코드를 수정할 수 있는 상태가 된다.
반대로, 내가 상대방의 코드를 가져와 수정하고 싶다면
상대방의 리모트 레포지토리 -> 내 리모트 레포지토리로 folk(가져오기) -> 내 로컬 레포지토리로 clone -> 수정작업 -> 다시 push 하여 내보내는 방식으로 진행하면 된다.

3. 레포지토리 업로드 연습 -1

내가 만든 작업물을 내 레포지토리에 올리는 연습을 해보겠다.
작업물을 공유할 상대가 없으니 일단 push 까지 진행해 보도록 하겠다.

터미널을 열고 내가 올릴 파일이 있는 폴더로 이동한다 : cd 파일명

(1) git init


아무것도 아닌 work space 에 있는 폴더/파일을 git과 연결하는 과정이다.
git init 은 git 관리하에 들어가게 하는 기능과 새로운 repository를 초기화 하는 기능이 있다.
Initialized empty Git repository 경로~~.git/
이라고 나오면 잘 들어간 것이다.
만약 Reinitialized 어쩌구 나오면 이미 한번 했었을때 remote 시 주소가 잘못되었다던가 뭔가 문제가 있는것이므로 remote 주소를 확인해준다.(더 자세한건 구글링 go.)

(2) git status


현재 git 의 상태를 확인하는 명령어.
당연히 아무것도 하지 않은 상태라서 untracked files 목록에
해당 폴더의 파일들 리스트가 빨간 글씨로 나온다.
여기서 나타난 명령어들을 잘 읽어보면
git add ~~ 파일을 커밋하기 위해 add 해라 라고 친절히 나온다.

(3) git add 파일명


아직 js 파일은 완성하지 않아서 html,css 파일만 add 해보기로 한다.
git add css/, git add cv_letter.html 이런식으로 올렸더니
added 된 파일은 초록색, add하지 않은 파일은 빨간색으로 뜬다.
여기서 added 된 파일들은 커밋이 가능한 staged 된 상태가 되었다.
만약 전체파일을 한꺼번에 add 하고 싶으면 git add . 을 눌러주면 된다.

(4) git commit -m "메세지작성"

커밋을 할 때 메세지를 넣어주는것이 좋은데
여기서 내가 초보적인 실수를 한것이, 메세지로는 현재파일의 상태를 간결히 나타내주는게 좋다고 한다.
예를들어 수정한 부분이 없는 처음의 상태면 "init file" 또는 "first file" 이런식이라던가, 수정한 부분이 있다면 "edit " 또는 "revised 어쩌고" 이렇게.
정답은 없다만 대세를 따르도록 하자. ㅎ

(5) git log


내가 커밋한 파일의 상태를 볼 수 있다.
user name, user email , 업로드한 date, time 그리고
내가 작성한 커밋 메세지까지 다 볼 수 있다.

(6) git 주소 만들기.

내 리모트 레포지토리로 연결시키기 위해서는 리모트와 연결시켜줄 주소가 필요하다.

레포지토리 네임을 정하고 남들도 볼 수 있도록 public 상태로 둔다.
참고로 private은 유료다.

(7) git remote add origin [repository 주소]

git remote add origin 명령어 뒤에 내가 방금 생성한 주소를 복붙해준다.

(8) git remote -v

git remote -v 까지 해주어야 로컬저장소가 원격, 리모트 저장소로 연결된다.

(9) git push origin master[branch]

master 하고 [branch] 라고 쓴 이유는 밑에서 알려주겠다.
처음엔 뭔지도 모르고 그저 master 로 쓰라고해서 따라했다. ㅎ
여튼, git push origin master 명령어를 작성하면
username 과 github 비밀번호를 작성하라고 나온다.
호옥시 ,, 나같이 username 으로 어떤걸 써야할지 헷갈렸던 사람은 ,,

깃허브 웹사이트에 있는 sined in as 닉네임 -> 요고 쓰면된다.
괜히 나처럼 git config --list username 찾아보지 마시긔.
(나는 username 을 본명으로 해놔서 자꾸 오류가 났었다 ㅎ )

(10) remote repository 확인하기


짠! 고요했던 내 리모트 레포지토리에 뭔가 생기긴 했다.
master had recent pushes 3 mins ago 라고 써있긴 한데 정작 파일들은 안보인다.
여기서 노란색 화살표 쪽 2 branches 라고 보이는데
아까 master 라고 명령어 작성할 때 branch 자리에 내가 master 를 추가하게 된 셈이다.
compare & pull requeest 를 눌러 master 브랜치에 있는 파일을 보도록 한다.

그럼 내 컴퓨터에 있던 파일들이 무려
work space - staging area - local repository 를 거쳐 remote repository 에 push 되었다.
이제 상대의 remote repository 로 pull request 하는 일만 남았는데 이건 실습 할때쯤 해볼 것 같다.

다음 블로그는 상대 remote repository 에서 내 repository 로 옮겨오는 작업에 대해서 작성해보도록 하겠다.

profile
FrontEndDeveloper

0개의 댓글