Git
Git은 분산 버전 관리 시스템(DVCS) 로컬에서 작업한 내용을 저장해 두는 소스코드 버전관리 프로그램
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 여부 결정
[참고문헌]
초보자를 위한 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
Git - Book
git-scm.com
지옥에서 온 Git
이 수업은 GITn 시리즈로 완전히 대체 되었습니다. GITn은 보다 많은 내용을 작은 단위로 쪼개서 선택적으로 공부하실 수 있도록 제작된 수업입니다. 아래 주소를 통해서 GITn 을 접할 수 있습니다.
opentutorials.org
'Aiffel_learning > 기본개념' 카테고리의 다른 글
24.05.14 markdown (0) | 2024.05.14 |
---|