본문 바로가기

Git/Git & Git Hub

Git Hub와 로컬 폴더를 연동하여 파일 올리기 (Git clone)

728x90
반응형

1. 새로운 폴더를 생성한다.

2. 내 컴퓨터에 git hub 원격 저장소 가져오기

이제 Github 웹사이트에서 생성했던 저장소를 내 컴퓨터로 가져와봅시다.
(git hub 저장소 생성은 인터넷 검색을 통해 쉽게 하실수 있습니다.)

로컬 저장소를 만들 디렉토리로 이동한 후 마우스 우클릭을 하고 git bash here을 선택해주세요.
*로컬 저장소: 내 컴퓨터 디렉토리 내에 존재, 원격 저장소와 동기화할 저장소
*원격 저장소: Github에서 생성한 저장소

- git설치 후 초기 설정을 위해 아래의 명령어를 수행하여 등록

git config --global user.name [깃허브 가입 시 이름]

git config --global user.email [깃허브 가입 시 이메일]

git config --global user.name Nanninggu

git config --global user.email may9noy@gmail.com

위의 명령어를 차례로 입력한 후 Enter를 눌러주세요. ([] 는 생략 합니다.)

- 앞서 생성한 저장소를 가져오기

git clone http://github.com/[내 이름]/[저장소 명].git

git clone https://github.com/Nanninggu/jenkins_test.git
C:\git>git clone https://github.com/Nanninggu/jenkins_test.git
Cloning into 'jenkins_test'...
warning: redirecting to https://github.com/Nanninggu/jenkins_test.git/
warning: You appear to have cloned an empty repository.

이제 저장소 이름과 같은 폴더가 생기고(로컬 저장소), 그 안에는 .git이라는 폴더가 있는 것을 확인할 수 있습니다!

3. git add

방금 생성한 로컬 저장소에 업로드할 파일을 넣어주세요. (예시로 dockerfile 을 작성하여 넣어 보겠습니다.)

git bash here로 커맨드 창을 열어준 뒤

git status

명령어로 현재 저장소에 있는 파일 상태를 확인합니다.

$ git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        dockerfile

nothing added to commit but untracked files present (use "git add" to track)

Untracked files 에 방금 저장소에 넣어 준 dockerfile 파일이 빨갛게 표시되면서 추적되지 않는 파일이라고 합니다.

깃허브의 저장소(원격 저장소)와 현재 내 컴퓨터 상의 저장소(로컬 저장소)가 일치하지 않아 추가 한 파일의 존재를 알 수 없기 때문입니다.

이 파일을 깃으로 전달하기 전에 add-commit-push 명령어를 통해

Working Directory에서 Staging Area로, Staging Area에서 Repository로의 흐름을 거쳐야 합니다.

*Working Directory: 현재 파일을 작업(추가, 수정, 삭제)하고 있는 영역(로컬)
*Staging Area: Working Directory에서 add 명령어를 통해 파일이 이동되는 영역, commit전의 상태(스테이징)
*Repository: commit과 push 명령어를 통해 최종적으로 commit한 사항을 원격 저장소로 업로드함(git 원격 저장소)

그렇다면 Untracked file인 dockerfile을 Working Directory에서 Staging Area로 이동시켜 보겠습니다.

git add [파일 이름]

git add dockerfile

Staging Area로 이동시킨 후 git status로 다시 파일 상태를 확인해보니

$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   dockerfile

이렇게 new file: dockerfile로 나오게 되면 커밋을 할 수 있습니다.

 

4. git commit

이제 Staging Area의 파일들을 commit할 차례입니다.

이 때 commit log를 남길 수 있는데, 여기에는 주로 코드 변경사항 등을 메모해줍니다.

git commit -m ["최초 업로드"]

$ git commit -m "최초 업로드"
[master 8be68ad] 최초 업로드
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 dockerfile

명령어를 입력한 뒤 Enter를 눌러 commit을 완료합니다. (추가 코멘트를 입력할때는 " " 따옴표로 감싸줘야 합니다.)

6. git push

마지막으로 commit한 파일을 원격 저장소로 최종 업로드하기 위해 다음 명령어를 커맨드 창에 입력해줍시다.

git push origin main

*origin: 원격 저장소의 주소

*master: 현재 브랜치

→ git push origin master의 뜻은 대략

"내가 등록한 원격 저장소(origin)안에서 master 브랜치로 push하겠다" 로 해석할 수 있습니다!

(브랜치는 git에서 협업, 버전 관리를 위해 '가지'를 따서 작업할 때 사용되는 개념입니다.)

git push origin main(=push할 브랜치 명)

git push origin main

- 하지만 여기서 문제가 발생 합니다. 위의 명령어를 사용하여 push를 해도 아무런 반응이 없이 현재 화면에서 아무런 진행없이 멈춰만 있는 현상이 발생 합니다.

$ git push -u origin main

$ git push origin main

- 원래는 git hub 로그인창이 뜨고 인증 절차를 진행해야 하나, 그 과정이 진행되지 않아 멈춘것 같습니다.

# 해결방법

- cmd 창을 클릭 > 현재 원격 local 저장소 폴더로 이동 > git push origin main 명령어 입력 > git hub 로그인창 뜸 > 로그인 후 정상적으로 push 됨

# CMD 창 열고, 현재 로컬 저장소로 이동
C:\Users\Desktop\git test\jenkins_test>git push origin main
Select an authentication method for 'https://github.com/Nanninggu/jenkins_test.git':
  1. Web browser (default)
  2. Personal access token
option (enter for default):

- 1번 웹브라우저를 이용한 인증을 선택 후 엔터

- 이미 이전에 인증을 받은 상태이므로, 인증되었다고 나옴, 인증일 받지 않은 상태라면 아이디와 패스워드를 입력하여 인증절처 진행

- 인증 완료 후 CMD 창을 보면 아래와 같다.
- 인증과 동시에 파일 업로드가 이루어 진것 이라고 볼 수 있다.

C:\Users\Desktop\git test\jenkins_test>git push origin main
Select an authentication method for 'https://github.com/Nanninggu/jenkins_test.git':
  1. Web browser (default)
  2. Personal access token
option (enter for default): 1
info: please complete authentication in your browser...
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 236 bytes | 236.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/Nanninggu/jenkins_test.git
 * [new branch]      main -> main

- 그렇다면 다시 git hub로 이동하여 파일이 정상적으로 업로드 되었는지 확인해보자.

- 정상적으로 업로드 되었다.

- 여기까지, git과 로컬폴더를 연동하는 과정에 대해서 알아 보았다.

- 끝 -

728x90
반응형