| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 컴파일타임
- 아이펠일기
- Python
- 파이썬 문법
- 파이썬
- 파이썬 여러줄 문자열 변수
- 마크다운 인라인 수식
- 런타임
- 모듈 패키지 라이브러리
- Linux
- AIFFEL일기
- 파이썬 긴 문자열 변수
- python 문법
- AIFFEL 회고
- Markdown
- 아이펠
- compile time
- 아이펠 일기
- 윈도우 커맨드창
- 파이썬 주석 변수
- 마크다운 inline 수식
- 아이펠 회고
- 파이썬 진수변환
- AIFFEL 일기
- 마크다운
- 리눅스
- PYTHON 주석 변수
- Aiffel
- 파이썬 형변환
- 파이썬 여러줄 주석
- Today
- Total
튜토리얼에도 고난과 역경이 있다.
깃 git ) 커널에서 깃허브 시작하기 - cmd창을 이용해 로컬 git을 깃허브로 올리기 본문
많은 프로젝트를 진행하면서 Git을 이용해봤지만, 부끄럽게도 항상 GUI프로그램이 잘 되어있는 Git을 사용해왔다. Xshell이나 리눅스에서 cmd라인으로 깃에 로그인하고 레포지토리를 만들고 commit과 pull 등의 기본 동작을 하는 것을 배웠었으나, 당시에는 너무 어렵게만 느껴졌었고, 오류라도 뜨면 해결할 생각보다는 모르겠다며 넘기기 바빴다. 그런 이유로 smartGit이나, Github Desktop과 같은 프로그램들을 좋아했다.
언제나 한켠에 짐짝처럼 커맨드라인으로 깃을 사용할 줄 알아야 한다고 느꼈었지만 미루기 일수였지만,
(깃에 올리기만 하면 되잖아..! 라는 마인드였다.)
오늘, 그 짐을 털어버리려한다.
커맨드라인 / 리눅스에서 git사용하기 START!
Git과 Github는 뭘까?
Git
소스 코드가 업데이트 되는 버전을 기록해두고 관리할 수 있는 소스 코드 버전 관리 시스템이다.
Github
Git으로 관리하는 프로젝트를 호스팅하고, 시간과 공간의 제약없이 협업할 수 있는 온라인 서비스를 제공하는 웹 사이트이다.
즉, git은 버전 기록을 저장하고, github는 git의 소스코드들을 다른 사람과 공유하여 여러사람과 협업할 수있게 도와준다.
Git 사용하기
1. 로컬 git에 github 계정 정보 등록하기
가장 먼저 할 일은, 로컬의 git과 원격에 있는 github를 연결하는 것이다.
$ git config --global user.email "yourEmailAddress@gmail.com"
$ git config --global user.name "Nickname"
위 과정이 끝나고 git의 config 정보를 출력하면 다음과 같이 나올것이다.
$ git config -l
실행결과
user.email=yourEmailAddress@gmail.com
user.name=Nickname
2. 내 컴퓨터에 로컬 저장소 만들기
git으로 관리할 로컬 저장소를 만들어봅니다.
$ cd ~
$ mkdir localGit
cd ~: ~는 홈디렉토리를 의미합니다.mkdir localGit홈디렉토리에 localGit이라는 디렉토리(폴더)를 하나 만들었습니다.
주의사항 및 수정사항
git만드는 것을 cmd창에서 실행할 때, git의 repository이름과 로컬저장소의 폴더 이름이 달라도 되는 줄 알았다.
repository의 이름과 로컬 저장소 폴더 이름이 다르면 git push할때 오류가 난다. 아마 다르게 설정을 더 해주어야 하거나(추측) 맘편하려면 git과 repository이름을 같게하는 것이 나을 것이다.
그래서, 처음에는 글을 작성할 때, 로컬 git을 localGit이라는 폴더로 만들었으나, 후에 test_git으로 수정하였다.
아래 글에서는 전부 test_git으로 전부 수정하였다.
$ mkdir localGit --> $ mkdir test_git으로 만들기
3. 로컬 저장소를 git으로 만들기
$ cd test_git
$ git init
실행 결과
Initialized empty Git repository in /aiffel/test_git/.git/
cd localGit: git저장소로 만들고 싶은 폴더내부로 이동합니다.git init: git이 이제 localGit폴더에서 발생하는 변화를 모두 기록할 것입니다.ls명령어를 사용하면 .git디렉토리가 생긴것을 볼 수 있습니다.
4. git 변화주기 - README.md 작성
유명한 github의 레포지토리를 들어가면 readme.md파일이 존재하는 것을 볼 수 있습니다. 이는 해당 레포지토리가 담은 오픈 소스 코드들에 대하여 혹은 해당 레포지토리 프로젝트에 대하여 소개하는 역할을 합니다.
.md파일은 markdown이라는 파일을 지칭하며, 개발자들이 많이 사용하는 문서작업용 언어입니다. 필자의 블로그 카테고리 중 개인공부 > 기타 에서 markdown 문법에 대한 글을 몇몇 볼 수 있으며, 구글에 markdown 문법이라 검색하면 많이 나옵니다.
간단하게 readme.md를 작성해보았습니다. 이 파일은 로컬 git 저장소에서 만들어야 합니다.
$ cd ~/test_git
$ echo "# This is my First command line git directory" >> README.md
echo는 출력을 하는 명령어로 "쌍따옴표 안의 문자열"을 >> 뒤에 나오는 파일을 타겟으로 출력합니다.
즉, README.md파일을 만들고, # This is my First command line git directory을 입력해줍니다. 만들어진 파일은 다음과 같이 확인할 수 있습니다.
$ ls
README.md
$ cat README.md
# This is my First command line git directory
5. git 변경사항 저장하기 - stage
4번째 단계에서 git에 README.md파일을 작성함으로써 깃에 변화를 주었습니다. git의 변화는 다음과 같이 확인할 수 있습니다.
$ git status
On branch master
No commits yet
Untracked files:
(use "git add ..." to include in what will be committed)
README.mdnothing added to commit but untracked files present (use "git add" to track)
- 기본 브랜치로 master를 사용하고 있어 master로 표기되고 있습니다. 현재는 인종차별이슈로 메인 브랜치가 main으로 표기되기도 한다네요!
- untracked files: 새로운 파일에 대한 정보를 읽어냈습니다. 이력관리 대상에 포함 되지 않은 README.md파일을 감지한 것을 알 수 있습니다.
add 와 commit
git의 repository 구조는 다음과 같이 3단계로 구성되어 있습니다.
작업폴더(working directory / 로컬 git) -> 인덱스 (staging area) -> 저장소 (Head-repository / 실제 github내의 repository라 이해하심이 편합니다)
저장소에 commit 하기 위해서는 추가(untracked files) 및 변경(Modified files)하고자 하는 파일을 먼저 인덱스에 기록(stage)하고 스테이징된 목록을 commit 명령어를 통해 저장소에 기록하게 됩니다.
즉, stage(현재 git 변화가 있는지 확인용도) -> add (현재 변화가 있는 파일을 후에 저장소에 저장하겠다고 표시함) -> commit(저장소에 add된 요소들을 기록) 과 같은 단계로 진행됩니다.
add 명령어
status에서 새로 추가된 파일에 대하여 add명령어를 수행할것입니다.
$ git add README.md
$ git status
실행 결과
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached ..." to unstage)
new file: README.md
- Changes to be committed : 목록에 있는 파일은 stage 완료된 파일입니다.
- 여러 파일을 add하기
- 모든 파일 :
git add . - 인덱스에 추가된 파일을 제외하려면 :
git rm --cached
- 모든 파일 :
commit 명령어
로컬에서 stage된 변화들을 저장소에 기록하는 명령어입니다. 이를 위해서는 저장소에 repository를 만들어야합니다. 로컬에서 git을 만들었지만, 저장소에 해당 git에 대한 repository를 만들지 않았으므로, repository 생성을 한 후, commit 해보겠습니다.
6. github 저장소에 repository 만들기
- github에서 repository 만들기
- 오른쪽 위에 프로필에 + 버튼을 입력하면 New repository 버튼을 통해 새로운 repository를 만들 수 있다.

저는 test_repository라는 이름으로 새로운 repository를 만들었습니다.
test_git이라는 이름으로 repository를 만들었습니다.

사진은 수정하지 않았으므로 혼동하지마세요!
- cmd 명령어로 repository 만들기
- todo
7. 로컬 저장소와 원격 저장소 연결하기
이 명령어는 로컬 저장소 디렉토리 안에서 실행해야 합니다.
$ cd ~/localGit
$ git remote add origin https://github.com/username/test_git.git
위 실행에서 url은 아까 repository를 만들고 나면 나오는 url을 넣으면 됩니다. test_repository ---> test_git.

사진은 수정하지 않았으므로 혼동하지마세요!
8. 원격 저장소 연결을 위한 토큰 생성하기
user profile > setting > Developer settings > Personal access tokens > generate token
주의점은 토큰은, 지금 현재만 보이므로, 메모 잘해두어야합니다.
9. 로컬 저장소의 기록을 원격 저장소로 전송하기
9.1 commit
$ git commit -m "first commit"
add 했던 파일들이 commit 됩니다.

9.2 branch 생성
$ git branch -M main
9.3 push
$ git push -u origin main
Username for 'https://github.com': [계정에 사용된 이메일을 입력하세요]
Password for 'https://[위에 입력한 이메일]@github.com': [비밀번호(토큰)를 입력하세요]
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 230 bytes | 230.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/jeina7/first-repository.git
유념사항
- [계정에 사용된 이메일을 입력하세요] : 제가 임의로 작성한 것이며, 이메일을 작성할 때는 대괄호를 빼고 작성하시면 됩니다.
- 리눅스 환경의 경우, 비밀번호 입력에는 커서가 안움직이고 아무것도 안보이는게 맞습니다. 당황하지 말고 그냥 입력하세요.
다음과 같이 뜨면 commit 성공!

참고하면 좋을 링크
- 지옥에서 온 Git - git 관련 강의
- https://opentutorials.org/module/2676
출처
- AIFFEL LMS
- https://ifuwanna.tistory.com/193 - add와 commit 비교
'나의 공부 > 기타' 카테고리의 다른 글
| 깃 블로그 ) 1. github pages 준비하기 (0) | 2022.01.26 |
|---|---|
| 깃 블로그 ) 0. Ruby와 Jeykll을 이용한 깃허브 블로그 git pages 시작하기 (0) | 2022.01.26 |
| Window) 윈도우 커맨드창 명령어 정리 (0) | 2022.01.06 |
| 텍스트 데이터의 처리과정 (0) | 2022.01.05 |
| 가위바위보 test train data (0) | 2022.01.04 |