본문 바로가기

Aiffel_learning/기본개념

24.05.14 Git과 Github(연결, push, pull, fork 등)

출처 : [Git 나무위키]

Git

Git은 분산 버전 관리 시스템(DVCS) 로컬에서 작업한 내용을 저장해 두는 소스코드 버전관리 프로그램

출처 : [GitHub 나무위키]

Github

- 마이크로소프트 산하의 Git 플랫폼

- git 작업물을 온라인 작업공간인 github에 올려서 원격으로 작업하고 공유할 수 있어 개발자들 협업에 필수적으로 쓰임

Repository : 로컬의 git과 동기화를 해서 온라인으로 관리할 수 있는 원격저장소(github 내의 공간)

 - 만들 때 Public 을 꼭 선택해 줘야지 협업 가능.

** commit을 하면 초록 잔디 한개 심을수 있음!

   1일 1커밋 운동을 해서 잔디밭을 심어보자 (성실한 개발자로서의 나를 어필가능하지 후훗)

 

terminal에서 Git과 Github 연결하기

#등록
$ git config --global user.email "이메일 주소"
$ git config --global user.name "Username"

#확인
$ git config -l

# 로컬 디렉토리를 새로운 Git 저장소로 만들기
$ git init

#디렉토리 확인
root@w8nt6q7:~/디렉토리# ls -a
.  ..  .git
#이렇게 git 디렉토리 생성되어있음

repository 연결, 변경

# 연결된 git repository 확인
$ git remote -v

# 연결된 repository가 있다면 제거가 먼저
$ git remote remove origin

# 새로운 주소 연결
$ git remote add origin 주소

README.md파일 만들기

md = Markdown(개발자들의 문서작업용 언어)

Github 레파지토리 내에서 안내서 같은 역할로 사용함

#리드미파일 만들기
$ echo "작성할 내용" >> README.md
# echo 뒷 부분이 README.md 파일의 내용으로 저장됨. 추가로 적으면 누적됨

# cat (파일 읽어오기)
$ cat README.md
$ cat > README.md
(파일 처음부터 다시 기록, ctrl+c 누르면 수정 종료)
$ cat >> README.md
(엔터로 여러줄 입력가능, 내용 누적됨, ctrl+c 누르면 수정종료)

 

파일 편집은 

Jupyter notebook,  visual studio code

 

Vim 편집기 : 텍스트 기반 편집기 in terminal

# Vim 편집기
$ vim README.md
# i 누르고 편집
# 저장하고 나가기 esc + :wq + 엔터
# 저장하지 않고 종료 esc + :qa + 엔터

 

PUSH , PULL

# Git이 추적하고 있는 로컬 저장소의 변화확인
$ git status

# ADD : git을 staging area에 추가(변화를 기록하기 위한 준비단계)
$ git add README.md

# COMMIT : 특정순간의 버전을 스냅샷 기록(-m으로 저장내용입력)
$ git commit -m "설명내용"
    
# commit 내역 확인하기
$ git log
    
# Push (로컬저장소의 파일과 버전기록을 원격 저장소로 전송)
$ git push origin main

# pull (로컬저장소를 원격저장소와 같게 업데이트)
$ git pull origin main
# 기본 브랜치 이름이 main->master로 변경되어 웬만하면 main으로 설정되어 있으나, 
# 혹시 master로 설정되어있을 경우
$ git push origin master
$ git pull origin master

토큰생성

프로필

> Settings

> Developer Settings

> personal access tokens

> tokens(classic)

> generate new token(classic)

다음만 선택 : expiration / scopes (repo, admin:repe_hook, delete_repo)

* 나오는 토큰코드 저장해두기, 외부에 절대 노출 금지

# 계정정보 저장(자동로그인)
$ git config credential.helper store

# 클라우드의 원하는 폴더에 계정정보 저장
$ git config credential.helper "store --file ~/aiffel/.git-credentials"

# 확인
$ git config -l
# 파일은 바로 생성되는 것은 아니고 이후에 변경사항 저장하면 자동생성됨
 
 #삭제
$ rm ~/aiffel/.git-credentials
$ ls -a
$ cd ~/aiffel/workplace
$ git config --unset credential.helper
$ git config -l

FORK 하기

1. 동료의 레파지토리로 가서 fork -> create new fork

2. 동료의 레파지토리를 fork해서 만들어진 '내' 레파지토리로 가서 주소 복사
   (※ 여기서 동료의 레파지토리 주소를 가져오면 나중에 push할 권한이 없음!)

3. terminal에서 새 디렉토리를 생성

4. 2번에서 복사한 주소를 새 디렉토리에 clone 

# clone (github의 원격 저장소를 로컬 저장소에 통째로 가져오기)
$ git clone "fork 해서 생긴 내 레포지토리 주소"

 

5. 수정 후 add-commit-push

6. 내 레파지토리 가서 확인하면 업로드 되어 있음

7. 동료의 레파지토리로 돌아가서

pull request  

> new pull request

> 동료 레포지토리 <- 내 레포지토리로 설정(안보인다면 compare acoss forks 클릭)
> create pull request

8. 동료는 merge 여부 결정

 


[참고문헌]

 

[모두랩스 블로그](https://modulabs.co.kr/blog/git-and-github-for-beginners/#:~:text=%EC%9D%84%20%EC%9D%B4%ED%95%B4%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4.-,9.%20add%EC%99%80%20commit%EC%9D%98%20%EA%B0%9C%EB%85%90,-git%20%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%98)

 

초보자를 위한 git과 Github 시작하기

git 과 Github 의 기본 개념과 사용 방법에 대해 알아봅니다. 실습을 통해 로컬 및 원격 저장소 생성, commit, push 등 주요 기능을 직접 경험해볼 수 있었습니다. git branch 가 무엇인지 간단히 활용사례

modulabs.co.kr

 

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

 

Git - Git 설치

이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0

git-scm.com

 

Pro Git

 

Git - Book

 

git-scm.com

 

지옥에서 온 Git

 

지옥에서 온 Git

이 수업은 GITn 시리즈로 완전히 대체 되었습니다. GITn은 보다 많은 내용을 작은 단위로 쪼개서 선택적으로 공부하실 수 있도록 제작된 수업입니다. 아래 주소를 통해서 GITn 을 접할 수 있습니다.

opentutorials.org

 

'Aiffel_learning > 기본개념' 카테고리의 다른 글

24.05.14 markdown  (0) 2024.05.14