git & github (요약 버전)
깃허브의 기능
- 내 소스코드를 저장하고 버전관리를 할 수 있게 한다.
- 소스코드를 다른사람과 공유한다.
- 타인과 협업하는 공간을 제공한다.
로컬환경 구축하기 (내 컴퓨터에 환경 설정하기, git 다운 로드 및 설치)
git-scm.com 에서 자신의 컴퓨터 OS에 맞는 git의 최신버전을 다운받아 설치한다.
컴퓨터의 검색창에서 git을 검색하여 git bash 창을 연다
아래 내용을 순서대로 입력하여 git의 사용자를 내 컴퓨터의 git에 등록한다.
git config --global user.name "your_name" // your_name (?)
git config --global user.email "your_email" // github가입 이메일
(주의 : 여기서 –global 옵션은 컴퓨터 내의 모든 폴더에서 계정이 유효하게 된다는 것을 의미한다. 따라서 만약 하나의 컴퓨터에 여러개의 깃허브 계정을 등록하고자 한다면 –global 옵션은 입력하지 않는것이 좋다.) git config --list
를 입력하면 아래와 같이 user.name과 user.email이 올바르게 등록되었는지 확인할 수 있다.
remote 환경 구축 하기 (깃허브 가입하고 Repository 생성)
- github.com 에 가입한다.
- 새로운 repository를 생성한다.
탐색기에서 앞으로 작성할 코드를 저장하기위한 폴더를 새로 만들기한다.(폴더이름은 영문으로 한다.) 새로 만든 폴더명 위에서 ‘shift’키와 함께 오른쪽 마우스키를 누르면 아래와 같이 메뉴 창이 열린다.
‘Git Bash Here’ 를 선택하면 아래와 같이 새로 만든 폴더위치에서 명령창이 열린다.
아래 명령을 순서대로 실행해보자
echo "# example" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/myHobbyBest/example.git
git push -u origin main
echo "# example" >> README.md
는 README.md파일에 # example
라는 코드를 입력하고 이를 저장한다. 명령창에 ls
를 입력하면 README.md
파일이 생성된 것을 볼 수 있다. 그 내용을 확인하고 싶으면 code .
를 입력한다. (현재 폴더에 있는 모든 파일을 vs code 앱으로 열어준다.)
git init
은 현재 폴더를 git명령과 작업에 필요한 상태로 초기화(initialize)한다. 현재 폴더 밑에 .git
폴더(숨김 폴더 이다.)가 생성되고 그곳에 git명령에 필요한 여러가지 파일들과 폴더들이 생성된 것을 볼 수 있다.
git add README.md
(README.md 파일만 대상 )또는 git add .
(현재 폴더에 있는 모든 파일이 대상 ) 로컬에서 리모트 사이트로 업로드할 파일 꾸러미들의 리스트를 만든다 (스테이지에 올린다는 의미에서 staged
라고도 한다.)
git commit -m "first commit"
(여기서 m은 message를 뜻한다.) 파일 꾸러미들의 변경내용을 대표할 수 있는 이름을 지어준다.
git remote add origin https://github.com/myHobbyBest/new_project.git
로컬 폴더와 리모트폴더를 연결해주는 명령이다. 명령이 잘 수행되었는지 확인하려면 git remote -v
를 입력하여 아래와 같은 출력이 나오면 된다.
1
2
origin https://github.com/myHobbyBest/new_project.git (fetch)
origin https://github.com/myHobbyBest/new_project.git (push)
git push origin master
를 입력하면 파일이 업로드된다.
얻어진 결과화면
1
2
3
4
5
6
7
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/myHobbyBest/new_project.git
* [new branch] master -> master
- clone 명령
git clone [REPO_URL] [DIR]
REPO_URL은 복사하고자 하는 repository에서 “Code”를 누르면 clone 주소를 보여준다.
HTTPS 형식 :
https://github.com/[USERNAME]/[REPOSITORY_NAME].git
SSH 형식 :
git@github.com:[USERNAME]/[REPOSITORY_NAME].git
[USERNAME] 은 깃허브 사용자이름이고 [REPOSITORY_NAME]은 저장소 이름이다.
이중에서 우리는 SSH 주소를 선택했다.
- (주의: SSH 주소는 GitHub에 SSH 키가 등록되어 있어야 쓸 수 있다.)
[DIR]을 생략하면 현재 디렉토리에 복사되며 [DIR[을 지정하면 clone명령이 자동으로 폴더를 생성한 후에 그곳에 파일들을 복사해준다.
git clone
= git init
+ git remote add origin
의 효과가 있으므로
별도의 init
명령이나 remote add
이 필요없다.
Fork
다른 이의 깃허브 계정에서 내 깃허브 계정으로 코드를 복사하는 것을 말한다. 오픈소스 프로젝트에 참여 하거나 협업을 진행할 때 많이 사용된다고한다.
일반적으로 복사하려는 다른이의 깃허브 리포지토리에서
fork
를 선택하고 create a new fork
를 누르면 화면이 내 깃허브 계정으로 이동한다.
이때 내 깃허브 계정에서 코드를 복사해올 새 저장소 이름(new Repository name)을 입력하고
Create fork
버튼을 누른다. 이렇게 복사해온 코드를 다시 내 로컬에 복사 (git clone
)한 후에 내 계정과 로컬사이에서 새로운 코딩을 진행 테스트하고 완료되면 최종적으로 Pull Request
를 통해 원본의 변경을 진행하는 것이다.
(원본 리포지토리와 내 리포지토리 간에도 upstream
downstream
의 관계가 형성된다고 한다.여기에 관해서는 나중에 다시 상세하게 공부해보겠다.)
Comments powered by Disqus.