티스토리 뷰

안녕하세요




이번 포스팅에서는 깃허브(Github)에 나만의 저장소를 만들고


만든 저장소에 코드나 파일을 업로드하는 방법에 대해 알아보도록 하겠습니다!





먼저 컴퓨터에 깃(Git)이 설치되어있어야합니다!

http://codevkr.tistory.com/45





1. Github 가입하기



https://github.com/



위 링크에 접속하셔서 깃허브에 가입해주세요




2. Github에 저장소 만들기



로그인 하신 후 우측 상단에 보면 프로필 아이콘과 화살표 아이콘이 있습니다.


눌러보시면 아래와 같이 드롭다운 메뉴가 표시됩니다.






여기서 Your profile을 눌러서 여러분들의 프로필로 이동하시면 됩니다.








프로필로 오시면 생성한 저장소(Repositories, 레포지토리)들이 보입니다.

저는 이전에 여러개의 저장소를 만들어두었기 때문에 보입니다.


빨간 네모로 표시한 저장소 탭을 눌러줍니다.











초록색 New 버튼을 눌러줍니다.









저장소는 정말 간단하게 생성하실 수 있습니다.


Repository name에는 저장소 이름을 입력해주시면 됩니다.

주로 프로그램 이름과 같이 구분하기 쉬운 이름으로 지정해주시면 됩니다!



Description에는 해당 프로그램, 저장소에 대한 간단한 설명을 작성하시면 됩니다!



아래에 Public, Private 선택이 있는데 Public으로 설정해줍니다.

(기본값 Public, Private는 비공개 저장소: 유료 서비스)



그리고 아래에 Initialize this repository with a README 라고 되어있는 부분에 체크를 하면


저장소 생성과 동시에 README.md 파일을 자동으로 생성해줍니다.



그냥 텍스트 문서인데 Github에서는 README.md 를 저장소 대표 문서(소개, 설명 등)으로 지정되어있습니다.


저희는 여기서 생성하지 않고 따로 직접 생성할것이기 때문에 체크하지 않겠습니다.




아래 .gitignore, license도 있는데 이 부분은 그냥 지나가도록 하겠습니다.

(.gitignore: 깃에 업로드할 때 제외할 파일/디렉토리 명시하는 파일)

(license: 본 프로그램/자료의 라이센스 지정)


다 작성하셨으면 아래의 Create repository 버튼을 눌러서 생성합니다.



이제 나만의 저장소가 생겼습니다!


중앙쪽에 보면 Quick setup 이라고 적혀있고 하늘색 배경으로 되어있는 부분에


https://github.com/이름/저장소.git


이라고 적혀있습니다.



이 부분을 복사해줍니다!

(꼭 복사해주세요 -- 중요)




복사하신 후 윈도우(혹은 리눅스, 맥)으로 돌아와서 방금 만든 저장소를 컴퓨터로 가져와봅시다!




3. 원격저장소를 컴퓨터로 가져오기




윈도우의 경우 가져올 폴더에서 마우스 우클릭 -> Git Bash Here 을 선택해줍니다.


리눅스, 맥 유저는 원하는 폴더에서 터미널을 열어주세요






깃을 처음 설치하셨으면 위와같이 설정해주셔야합니다.

(깃  설치 후 처음 1번만 해주면 됩니다.)



git config --global user.name "여러분 깃허브 이름"

git config --global user.email "여러분 이메일"



초기설정을 마치셨으면 본격적으로 생성한 저장소를 불러와봅시다!





아까 위에서 복사한 저장소 주소가 필요합니다.


git clone 복사한 저장소주소



명령어를 입력해주시면 위 사진과 같이 저장소 이름과 같은 폴더가 하나 생깁니다.



폴더 안으로 들어가봅시다.




4. 파일 작업(생성 ,수정, 삭제 등)후 스테이징 영역으로 이동시키기






.git 폴더는 숨김폴더라서 안보일수도 있습니다.

윈도우 설정에서 "숨김파일보기"를 활성화해주시면 확인이 가능합니다

(이 부분은 선택)



README.md 파일을 하나 생성합니다.

(메모장으로 아무 텍스트파일 생성하신 후 다른이름으로 저장 -> README.md 로 저장)


.md 파일을 메모장 또는 기타 텍스트 에디터로 열어줍니다.


저는 메모장으로 진행하겠습니다.







간단한 설명을 원하시는대로 작성하시면 됩니다.


.md 파일은 마크다운(MarkDown) 파일이기 때문에 문법이 존재합니다.


문법을 응용하면 결과물을 예쁘게 확인하실 수 있어요




https://gist.github.com/ihoneymon/652be052a0727ad59601


위 링크에서 마크다운 문법을 간단히 확인하실 수 있습니다.




작성하신 후 저장해주세요!






다시 Git Bash Here을 해서 커맨드창을 열어줍니다.

(리눅스, 맥 유저는 터미널)




git staus


명령어를 입력해줍니다.


현재 저장소의 파일 상태를 한눈에 볼 수 있습니다.



방금 생성한 파일이 Untracked files에 붉게 보입니다.


추적되지않은 파일에 방금 만든 파일이 있습니다.



이 의미는 현재의 저장소와 우리가 내려받은 저장소와 일치하지 않아서 그럽니다.


저장소에는 원래 아무것도 없지만 방금 임의로 파일을 생성하였기 때문에 깃허브에 있는 저장소가 파일의 존재를 알지 못하기 때문입니다.



방금 만든 파일은 현재 우리 컴퓨터 디렉토리(작업 디렉토리)에 있습니다.

이 파일을 깃에 전달하기 위해서는 준비를 해야합니다(스테이징 영역)

준비가 된 파일들을 전달합니다(커밋 - 로컬저장소)

커밋한 파일들을 원격저장소로 업로드합니다(푸시- 원격저장소)


우리의 최종 목적은 방금 만든 README.md 파일을 원격저장소(깃허브에서 생성한 저장소)로 업로드하는것입니다!


그 전에 Git의 흐름을 알아봅시다.








Working directory는 현재 작업하고 있는 컴퓨터입니다. (작업디렉토리)

방금 README.md 파일을 생성한 위치이죠


Git 명령어에 add 라는 명령어가 있습니다.

방금 생성한 README.md 파일을 add해주면 스테이징영역으로 이동합니다.

(커밋 전 준비된 파일들이 모이는 공간, [가상의 공간])


그리고 마지막으로 커밋을 해주시면 스테이징영역에 있던 모든 파일들이 커밋됩니다.

커밋이 되면 기록에 변경사항, 메모들이 남습니다.

나중에 커밋한 내용을 모두 확인할 수 도 있고 특정 커밋 시점으로 코드를 불러올 수 있습니다.



마지막으로 푸시가 있는데 push를 하면 커밋한 사항을 원격저장소(깃허브에서 만든 저장소)로 업로드할 수 있습니다.

그 내용은 아래 사진에 있습니다.






복잡해보이지만 add -> commit -> push를 차례대로 하면 지정한 remote repository(원격저장소)로 파일을 올릴 수 있습니다!


깃이 처음 사용할 땐 정말 어렵습니다.


지금 위에서 설명한 내용은 꾸준히 확인해보시고 찾아보시면서 감을 익히셔야합니다.



가장 중요한것은 자주 사용해보는것이죠




이제 다시 실습으로 진행해보도록 하겠습니다.







방금 생성한 파일을 스테이징 영역으로 옮겨봅시다!







git add README.md



위 명령어를 입력하면 Untracked 상태였던 README.md 파일이 작업디렉토리(Working directory)에서 스테이징 영역으로 이동됩니다.


git add *

을 입력하면 Untracked 파일들이 모두 스테이징 영역으로 이동됩니다.

(*은 모든 파일을 의미, 파일이 여러개라면 일일히 파일명을 add 하는것보다 *을 사용하는것이 더 편리합니다.)




스테이징 영역으로 이동시켰으면 다시 git status 명령어를 입력해봅시다.



Untracked files에 포함되어 빨간색이었던 README.md 파일이 초록색으로 바뀌었습니다!


커밋을 하게 되면 초록색으로 표시된 파일들이 커밋됩니다.

(빨간색은 커밋에 포함 X)




5. 스테이징 영역의 파일들을 커밋하기



이제 기록으로 남겨봅시다! (커밋)



git commit -m "커밋사항 요약"


" " 사이에는 원하시는 문자를 넣어주세요


기록과 함께 메모를 남긴다고 보시면 됩니다!

주로 코드의 변경사항, 기능 추가 등 이런 내용을 짧게 작성해줍니다.


저는 Create README.md 라고 작성하였습니다.


엔터를 누르면 커밋이 됩니다.


이제 마지막으로 원격저장소(깃허브에서 만든 저장소)로 업로드해봅시다.




6.  커밋한 내용 업로드하기





git push origin master



origin은 등록한 원격저장소,

master는 브랜치 이름인데


위 2가지는 일단 외워서 사용하세요


원격저장소 이름을 origin으로 등록한것이고

해당 저장소의 master 브랜치로 push한다는 명령어입니다.


나중에 천천히 습득하실테니 당분만 push할때는 위와같이 해주시면 됩니다.




명령을 입력하면 깃허브 이름과 비밀번호를 입력하라고 합니다.


먼저 깃허브 이름을 입력해주시고

비밀번호를 입력해주세요

(비밀번호는 입력해도 콘솔/터미널에 표시되지 않습니다. 천천히 입력한 후 엔터를 쳐주세요)


위와같이 100% done이 보인다면 정상적으로 push(업로드)된것입니다.




이제 깃허브 저장소로 가봅시다.



7. 확인하기




위와같이 정상적으로 파일이 업로드되었습니다.



이제 파일을 수정하고 다시 add -> commit -> push 과정(4번 ~ 7번)을 하시면 변경사항으로 다시 업로드가 가능합니다!



커밋 기록은 아래에서 확인이 가능합니다.






1 commit 이라고 되어있는 부분을 누르면 커밋 기록을 확인하실 수 있습니다.


1 branch 부분은 브랜치들의 정보를 확인할 수 있습니다.

(기본적으로는 master 브랜치가 자동 생성됩니다.

git push origin master 의 이유도 기본으로 생성된 master 브랜치를 사용하기 위해서입니다)



위와같이 커밋 기록이 남겨져있습니다.


add -> commit -> push 과정을 여러번 하다보면 위의 기록이 쭉 늘어나고 어느 부분이 수정되었는지도 간편하게 확인이 가능합니다!





궁금하신 사항 있으시면 댓글로 남겨주세요!


감사합니다.


'Git' 카테고리의 다른 글

[Git] Github에 저장소 만들고 업로드하기  (33) 2018.05.03
[Git] 깃 설치하기(Windows)  (0) 2018.05.03
댓글
  • 프로필사진 hjkim0617 안녕하세요. 필요한 자료였는데 깔끔하게 정리해주셔서 감사합니다! 2019.08.08 08:49
  • 프로필사진 BlogIcon 이근둥 감사합니다~ 좋은 자료 많이 공유할 수 있도록 하겠습니다 2019.08.08 08:59 신고
  • 프로필사진 injeong 감사합니다! 군더더기 없이 깔금하게 정리되어 있어 좋네요! 2019.10.19 02:27
  • 프로필사진 BlogIcon 이근둥 좋은 평가 감사합니다!~ 2019.10.19 08:51 신고
  • 프로필사진 111 파일을 삭제했을땐 git add 말고 뭘 써야 하나요 2019.11.17 16:59
  • 프로필사진 BlogIcon 이근둥 삭제했어도 add로 스테이징 영역으로 보낼 수 있습니다.

    - 새 파일
    - 수정된 파일
    - 삭제된 파일
    2019.11.17 17:51 신고
  • 프로필사진 123 만약에 github에 신규폴더를 만들었고 로컬에 새로운 파일과 폴더를 생성해서 git의 신규폴더에 올리고 싶을때는 어떻게 해야하나요?
    계속 오류가 나네여
    2019.12.06 10:25
  • 프로필사진 BlogIcon 이근둥 git pull을 통해 깃허브상의 변경사항을 로컬로 내려받아야합니다. 내려받으신 후 충돌항목이 있다면 조치해주시고 push하시면 됩니다 2019.12.06 11:35 신고
  • 프로필사진 shin 큰 도움되었습니다. 감사합니다! 2019.12.20 16:51
  • 프로필사진 BlogIcon 이근둥 감사합니다~^^ 2019.12.21 09:58 신고
  • 프로필사진 choi 본문 내용은 직접 폴더 설정하고 명령어를 쳐서하는 방식인데 그냥 깃허브에서 업로드 파일해서 자료올려도 상관은 없지요? 2020.01.16 22:44
  • 프로필사진 BlogIcon 이근둥 깃허브는 파일 수정 정도만 지원하고 있는걸오 알고있습니다.

    실제 개발을 진행한다면 본문 내용과 같이 커맨드를 주로 사용하기때문에 명령어에 익숙해지시는걸 추천합니다.

    깃허브에서 지원하는 편집 기능을 사용해도 문제는 없습니다.
    2020.01.17 00:46 신고
  • 프로필사진 Kihun 감사합니다 덕분에 좋은 정보 얻어 갑니다. 2020.02.13 17:45
  • 프로필사진 BlogIcon 이근둥 댓글 감사합니다 🙂 2020.03.10 00:04 신고
  • 프로필사진 Lee 안녕하세요 :) 덕분에 무사히 커밋합니다ㅠㅠ 좋은 정보 공유해주셔서 감사합니다! 2020.03.09 23:40
  • 프로필사진 BlogIcon 이근둥 도움이 되셨다니 다행입니다 ㅎㅎ 2020.03.10 00:04 신고
  • 프로필사진 byun 감사합니다 처음으로 깃 시작했는데 도움 많이됐어요!!!! 2020.03.19 18:12
  • 프로필사진 BlogIcon 이근둥 댓글 감사합니다! :) 2020.03.19 18:51 신고
  • 프로필사진 ㅇㅇ 정말 감사합니다. 초보 프로그래머인데 많은 도움됬습니다.
    블로그 번창하셔요!
    2020.04.03 21:01
  • 프로필사진 BlogIcon 이근둥 감사합니다~ 2020.04.15 16:52 신고
  • 프로필사진 BlogIcon 오뚜깅 감사합니다.!! 깃허브 처음에 완전 도움이 됐어요!!ㅎㅎㅎ 2020.04.08 17:21 신고
  • 프로필사진 BlogIcon 이근둥 감사합니다! 추후 기존 강좌 리뉴얼과 다양한 활용에 대해서도 준비해보도록 하겠습니다 2020.04.15 16:53 신고
  • 프로필사진 최현우 우클릭했을때 git base here 이 안보이는데 프로그램을 설치해야 하는건가요? 어떤걸 설치해야 하나요? 2020.05.16 13:11
  • 프로필사진 BlogIcon 이근둥 윈도우용 깃을 설치하셔야 합니다.

    http://geundung.dev/45 에서 해당 내용 확인하실 수 있습니다!
    2020.05.29 21:11 신고
  • 프로필사진 주희윤 README.md를 수정하고 저장하여 add하고 commit을 git commit -m "Update README.md" 명령을 실행하고 push 했는데
    ! [rejected] master -> master (fetch first)
    error: failed to push some refs to 'https://github.com/wngml97/Test_git.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    이런 오류가 발생합니다ㅠㅠ 왜그런건가요?
    2020.06.03 23:46
  • 프로필사진 BlogIcon 이근둥 원격 저장소(깃허브)와 로컬 커밋 내용이 일치하지 않아서 그렇습니다.

    만약 깃허브에서 파일을 수정했거나 기타 작업을 통해 변경사항이 존재할 경우 로컬에도 동일한 작업이 반영되도록 조치를 취해야합니다.

    git pull origin master 명령어를 통해 원격 저장소의 작업 내용(커밋 기록)을 내려받아 동기화 후 다시 시도해보세요
    2020.06.25 14:35 신고
  • 프로필사진 개발자 와 정리 잘되어있어서 잘보고갑니다. 2020.07.16 08:34
  • 프로필사진 BlogIcon 이근둥 감사합니다! 2020.07.20 10:36 신고
  • 프로필사진 이동민 안녕하세요. 따라하기 쉽게 잘 정리해주셔서 감사합니다!! 2020.07.26 01:04
  • 프로필사진 BlogIcon 이근둥 도움이 되셨다니 다행입니다 :) 2020.07.28 02:30 신고
  • 프로필사진 개발하는 사람 진짜 계속 에러나서 이 글 보고 했는데 잘 되네요 감사합니다~! 2021.01.13 01:06
  • 프로필사진 초보 와 수업시간에 강사님이 조금 어렵게 설명하셔서 시험보는데 정말 고생 많이했는데 단번에 이해됐네요 ㅋㅋㅋㅋㅋㅋ
    정말 내용 깔끔하고 정갈하게 정리해주셨네요 너무 감사합니다
    2021.05.01 14:23
  • 프로필사진 처음시작 정말 깔끔하게 잘 설명해주셨네요. 큰 도움이 되었습니다. 2021.10.25 02:14
댓글쓰기 폼