본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

Personal/Book

팀 개발을 위한 Git GitHub시작하기

정호영,진유림

 

버전관리란 내가 원하는 시점/버전으로 이동할 수 있게 해주는 것.

 

github.com 공개저장소 생성 무료, 비공개저장소. 세계 최대규모의 git호스팅 사이트 작업자 3인이상 무료. 설치형 버전 enterprise

gitlab.com 공개저장소, 비공개저장소 생성 무료

bitbutchet.org 5인 이하 팀일경우 공개저장소 비공개저장소 생성 무료.

https://standout.tistory.com/207

 

git이란?

git 버전 관리 시스템(VCS) 소스 코드의 변경 사항을 추적하고 이를 효율적으로 관리 협업시 각자의 변경 내용을 쉽게 합칠 수 있도록 도움 https://git-scm.com/ Git git-scm.com 오픈소스이며, 무료로 사용

standout.tistory.com

https://standout.tistory.com/206

 

git 다운받기

git 다운 https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-

standout.tistory.com

 

 

git init 깃 로컬 저장소 생성하기. 깃초기화 과정 , 버전관리의 시작= .git 폴더

git init

 

깃 계정 연결

git config --global user.email "email.git.github@gmail.com"

 

git add

git config --global user.name "git-name"

 

커밋하기

git add readme.txt

git commit -m '사이트 설명 추가'

 

커밋확인해 id값을 확인해 앞자기 7자리 커밋아이디를 복사해 커밋상태로 되돌리기

git log

git checkout 5813bb5

 

최신 커밋으로 돌아가기.

git checkout - 

 

원격저장소에 커밋 올리기 = push

git remote add origin https://github.com/계정이름/reponame.git

git push orgin master

 

저장소 내려받기 clone

git clone https://github.com/계정이름/reponame.git .

 

원격저장소의 새로운 커밋을 로컬 저장소에 갱신하기 pull

git pull origin master

 

소스트리 설치 및 사용

https://standout.tistory.com/742

 

github 소스트리 설치/연결하기

아래의 단계는 github 계정을 만든 이후에 진행한다. 소스트리 다운 https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Gi

standout.tistory.com

 

 

 

라이선스 파일추가

프로젝트에 맞게 choosealicense.com에서 고를 수 있다. 

https://choosealicense.com/

 

Choose an open source license

Non-judgmental guidance on choosing a license for your open source project

choosealicense.com

 

 

 

 

 

브랜치를 합치는 예의바른 방법 풀리퀘스트

커밋 - github홈페이지 접속 - new pull request - 브랜치 설정 - reviewer 협력자 검토자를 선정 - assignees 풀 리퀘스트를 담당하는 동료 보통 자기자신이다. - labes 풀리퀘스트에 라벨 보통 버그, 리뷰필요, front, back이 있다. 

검토자는 내용을 확인한 후 merge pull request 버튼을 클릭해 승인한다 .

pull request기록은 pull request 탭의 cloded 에서 확인 할 수 있다. 

 

 

 

tag 특정 커밋에 포스트잇 붙이기 

프로그램 출시하는 릴리즈시 현재 코드 상태를 버전 v.1.0.0이라고 기록할려할때 보토 지정함. 

push할때 모든태그 push를 눌러줘야 저장소에도 반영됨.

 

 

 

 

협력자 등록하기 settings - collaborators - add collaborator

이때 초대 이메일이 가며, 수락 버튼을 눌러야 권한이 완전히 부여된다. 

 

 

 

 

 

Fork.

남의 repo를 가져다 소유자가 나인것처럼 사용할 수 있다. 

간단히 fork해 reame를 수정해 commit해보자. 

 

 

 

pull-requests - new pull requests - 내 repo브랜치에서 base repo가 뜬다면 정상적임.

 

 

 

 

이와같이 fork를 하면 기존 저장소에서 어떻게 업데이트를 하는지 볼수 없다. 이때 여러 원격저장소를 함께 볼 수 있다 .

저장소 - 원격저장소 추가 - 확인

해당 업데이트 코드들은 patch를 통해 가져올 수 있다. 충돌날 수 있다 .

 

 

 

 

리베이스 rebase 재배치

단 다른 개발자가 이 변경사항을 사용하고 있지 않아야한다. 히스토리를 강제로 조작하는것.  초기화랑 재배치를 비교해보자 .


A --- B --- C --- D (HEAD) -> A --- B (HEAD)

 

main:    A --- B --- C
feature:       D --- E

-> main:    A --- B --- C --- F

 

보통은 혼자쓰는 브랜치에서만 수행한다. 

충돌이 날수있다.  히스토리를 다시 정리하는것. 리베이스 히스토리를 되돌리거나 지우는것. reset

리베이스는 이력을 조작하는 행위이기때문에 강제푸시를한다. 

 

 

 

강제푸시

옵션 - git - 강제푸시 활성화 - push - 강제푸시 체크 - push

 

 

 

 

 

amend, 

마지막 커밋 정정

 

 

 

 

 

체리픽

 

 

 

 

초기화.

과거시점으로 되돌리기

soft, mixed, hadrd

 

 

 

 

 

 

 

 

reset은 이력이 남지않다. 

revert는 기능은 동일하지만 기록을 남겨준다. 

해당 커밋만 삭제해준다. 

 

 

 

 

 

stash

에러등때문에 여러가지 방법을 시도해볼때 뭐가됬고 뭐가안됫고 사항들을 모두 커밋으로 올려야만할까?

commit으로 올리기 애매한것들을 저장하는 기능이있다. 

 

stash가 생성되었고 코드로 돌아가보면 이전 commit으로 돌아가있다. 

적용.

적용했으면 해당 스테시는 더이상 사용하지않을테니 삭제해보자.

 

 

 

 

git bash 시작

 

 

 

 

git bash 기본 명령어 정리

pwd 현재 폴더위치 확인

ls -a 현재 폴더 파일목록 확인

cd 홈폴더이동

cd ~/~/~ 특정위치로 이동

cd ,,/ 상위위치로 이동

mkdir 폴더이름 폴더만들기

echo "hello git' 출력.

 

 

 

로컬저장소 생성하기

mkdir hello-git-cli

cd hello-git-cli/

git init

 

 

 

git 옵션 설정하기

git config --global user.name 현재 유저이름확인

git config --global user.name "Sanghee" 이름 바꾸기

 

 

git 텍스트 에디터 vscode로 설정하기

cli를 사용하면 vim이나 nano로 설정되어있어 불편하다. 설치시에 세팅하는것이 좋고 .신경쓰인다면 다시 다운받자.

git config core.editor

 

 

스테이지와 커밋

git pull 풀

git ls-files --stage 현재 스테이지 내용 확인하기

echo "hello git" > file1.txt 파일 file1에 텍스트 저장해 생성
cat file1.txt 파일보기

git add 파일, 파일.. 스테이지에추가

git reset file1.txt 스테이지에서 내리기

git comit 커밋하기

git commit -a add명령 생략 후 바로 커밋

 

 

 

클론과 push

git clone 저장소URL 새로운폴더명 clone받기

git remote add orgin 원격 저장소 등록. 여러개 등록할 수 있으나 통상 첫번째 원격 저자이소는 origin으로 저장한다. 

git remote -v 원격저장소 목록 보기

git push -u orgin master push와 함께 업스트림 지정

git pusy 푸쉬

 

 

 

log 및 도움말

git log  커밋 자세히 확인하기

git log --oneline 커밋해시와 제목만 보기

git log --oneline --graph --all --decorate 커밋들을 더 자세히 보기확인

git log --oneline -n5 최신 커밋 5개만 확인.

git push [-u] 

git help status status 관련 도움말 확인하기

 

 

 

 

태그관리하기

git tag -a -m "첫번째태그" v0.1 주석있는 태그 작성

git push orgin v0.1 태그 푸시

 

 

 

브랜치 관리하기

git branch 현재 브랜치 확인

git branch mybranch1 새 브랜치 생성

git checkout mybranch1 체크아웃하기

git checkout -b feature1 feature 브랜치 생성 및 체크아웃

git branch -d mybranch1 브랜치 삭제

git merge feature1 마지하기

 

 

 

커밋 관리하기

git reset --hard HEAD~2 브랜치 두커밋 이전으로 되돌리기

git rebase master 리베이스하기.

git rebase mybranch1 다른 브랜치로 리베이스하기.

git hash-object cat.txt 해당 파일의 커밋 hash 확인

git show ffbda 해당 hash의 커밋 객체 확인하기

 

 

SSH 키 생성 및 사용하기

ssh-keygen SSH key 생성 - enter - enter - enter

cd ~/.ssh/ 키 폴더로 이동 - pwd - ls -

cat id_rsa.pub 공개키를 확인해 내용을 메모장에 붙여넣는다. 

echo "Host github.com" >> ~/.ssh/config 파일생성해

 

  Hostname github.com

  IdentityFile ~/.ssh/id_rsa