'이미지' 카테고리의 다른 글

메이킹  (0) 2023.02.02

 

 

 

 

 

'이미지' 카테고리의 다른 글

share  (0) 2023.02.06

GitHub 시작하기

github.com 살펴보기

Git으로 관리되는 프로젝트의 원격 저장소

오픈소스의 성지 : Git, VS Code, Tensorflow, React 등

 

 

Personal access token 만들기

 

 

github 로그인 후 우측 상단의 프로필 - Settings 클릭

 

왼쪽 하단 Developer Settings 클릭

 

Generate new token (classic) 클릭

 

token 이름 기한 설정 ( 무제한도 가능 )

 

권한 설정 이번 실습에서는 repo까지만 권한 설정

 

token 키값 복사

 

window 자격 증명 관리자 실행

windows 자격 증명 클릭

밑에 일반 자격 증명  github.com 클릭 후 편집 ( 없으면 해당 주소 추가 ) 

 

사용자 이름 : GitHub 이름 입력

암호 : 아까 저장했던 토큰 키값 입력

 

 

 

 

 

소스트리에도 추가

 

도구 -> 옵션 클릭

 

인증->github.com 편집-> token 키 값 입력

 


 

 

 

GitHub에 새 Repository 생성

 

New Repository

Repository name 자유롭게 설정

Public: 모두에게 보일 수 있는 프로젝트
Private: 허용된 인원만 볼 수 있는 프로젝트

create

 

 

해당 처럼 나오면 완료된거

 

 


 

 

 

협업할 팀원 추가

협업할 Repository 선택 후

settings 클릭

collaborators 클릭

 

Add people 클릭 후 

협업할 사람 github ID, 이메일 주소 입력

 

 

 

 


 

 

원격 저장소 사용하기

 

이용할 Repository 선택 후 HTTPS 선택

 

 

형관팬 밑 줄 클릭 ( 복사 )

 

터미널에 붙여넣기 후 엔터
GitHub에 적용 된 모습

 

GitHub 레포지토리 생성 후 복붙 명령어 설명

 

로컬의 Git 저장소에 원격 저장소로의 연결 추가

원격 저장소 이름에 흔히 origin 사용. 다른 것으로 수정 가능

 

 

 

GitHub 권장 - 기본 브랜치명을 main으로

 

 

로컬 저장소의 커밋 내역들 원격으로 push(업로드)

-u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결

 


 

 

 

원격 목록 보기

 

자세히 보기: git remote -v
 

 

원격 지우기

로컬 프로젝트와의 연결만 없애는 것. GitHub의 레포지토리는 지워지지 않음

 


 

GitHub에서 프로젝트 다운받기

Download ZIP: 파일들만 다운받음, Git 관리내역 제외 ( 협업할때 사용x ) 

Git clone: Git 관리내역 포함 다운로드 ( 협업할때 사용o )

 

 

Git clone

 

다운받을 폴더 우클릭 Git Bash Here 선택

 

GitHub HTTPS 복사

 

켜놨던 Git Bash에서

git clone (원격 저장소 주소) 복사했던 주소 엔터

 

폴더 생긴거 확인

 

vscode 새 프로젝트 생성 후 폴더 열기
클론 했던 폴더 선택

 


 

 

 

push와 pull

원격으로 커밋 밀어올리기 ( push )

로컬->Github push

 

Add Evie to Leopards 커밋

 

 

 

 

git push
GitHub페이지 새로고침 후 파일들과 커밋 내역 확인
GitHub페이지 새로고침 후 파일들과 커밋 내역 확인

 

 

 

 

 

 

 

원격의 커밋 당겨오기(pull)

보통은 협업을 하고있는 인원이 push에서 올린 작업을 GitHub으로 부터 내 로컬로 다운 받는 용도로 사용

실습은 GitHub에서 수정 후 진행
클릭
클릭

members에 Dongho 추가

커밋 메시지: Add Dongho to Leopards 작성

커밋 체인지

 

추가된거 확인
git pull
vscode에 Dongho 추가된거 확인
소스트리에서도 추가된거 확인

 

 

pull 할 것이 있을 때 push를 하면?

 

커밋

 

 

 

 

coach를 Lupi로 수정 / 커밋 메세지 작성 후 커밋

동료가 먼저 push한 상황

 

 

 

 

 

로컬에서 push 오류메세지나옴

 

 

merge 방식 : 로컬과 원격의 시점을 한 곳으로 모아준 다음에 push
소스트리에서 확인
reset

 

 

 

 

 

rebase 방식 : 원격에 맞춰서 일단 원격꺼를 먼저 붙이고 로컬에서 한걸 잘라서 붙이는 방식
소스트리 확인

 

 

 


 

 

 

 

 

협업상 충돌 발생 해결하기

 

커밋

 

 

GitHub에 추가

 

 

 

merge 방식
충돌 상황 발생->Maruchi 선택

오류 수정

git add . 로 파일 담기

git commit 커밋하기

저장 종료 :wq

소스코드 확인
reset

 

 

 

 

 

Maruchi로 변경
rebase 방식
Maruchi 선택
arachi에 maruchi 추가 된 모습

 

 

 

 

로컬의 내역 강제 push해보기

 

 

돌아갈 커밋 선택 후 초기화

 

로컬은 초기화 됫지만 원격은 초기화가 안된 모습
로컬과 원격지 돌아갈 커밋쪽으로 싱크 맞춰짐

 

 

 


 

원격의 브랜치 다루기

 

 

로컬에서 브랜치 만들어 원격에 push 해보기

브랜치 생성 후 해당 브랜치로 이동

git push 명령어를 치면 대상을 명시하라는 메시지 나타남

빨간색 표시 명령어 그대로 사용해도 되고

밑에 명령어도 사용 가능

 

 

원격에 push 완료

 

git branch : 로컬에 있는 브랜치만 검색 가능

git branch --all : 로컬, 원격 브랜치 검색 가능

 

 

 

 

 

 

원격의 브랜치 로컬에 받아오기

 

GitHub에서 브랜치 생성 ( main에 파생 )
생성 확인
로컬에서는 GitHub에서 만든 브랜치가 아직은 보이지 않음

 

git fetch 입력

원격지에서 만든 브랜치 불러오는 모습

 

 

 

 

해당 명령어로 로컬에 같은 이름의 브랜치 생성하여 연결 그다음 switch

 

소스트리에서 확인 

같은 내용의 브랜치들이 생성된거 확인

원격 브랜치 전부 연결된거 확인

 

 

 

 

 

 

 

 

원격의 브랜치 삭제

main 브랜치로 이동
로컬 브랜치만 지우기

 

 

 

원격 브랜치 삭제 명령어
삭제
GitHub에서 브랜치 삭제된거 확인
소스트리 확인

 

 


 

SourecTree로 진행 해보기

 

생성

 

주소복사

 

 

소스트리->저장소->원격저장소 클릭

 

원격 이름 작성

url / 경로 : GitHub에서 복사했던 url 주소 입력

확인

 

origin2 생성

 

 

Push 클릭

origin2 변경

Push

 

 

git-another-cojuns 레포지토리에도 내역이 올라감

원격을 여러개 두고 작업 가능

 

 

 

 

 

 

 

push와 pull

 

추가

 

스테이지에 올리기 클릭

스테이지 올리기

커밋 메세지 작성

origin/main에 바뀐 내용 즉시 푸시 체크

소스트리로 커밋과 푸시 한번에 가능 

 

GitHub에 업로드된거 확인

 

 

 

 

 

 

GitHub에서 작성

 

 

 

소스트리 패치->확인 클릭

 

 

pull

 

로컬에서 Pinkfong 추가된거 확인

 

 

 

 

 

 

 

브랜치 다루기

브랜치 생성

 

Push 클릭 -> Push할 로컬 브랜치 체크 후 Push

 

GitHub에서 Push한 브랜치 확인

 

 

 

 

 

 

 

원격에서 from-remote 브랜치 생성

 

 

소스트리-> 패치-> 확인

 

origin에 생성된거 확인

origin from-remote 우클릭 -> 체크아웃 클릭

 

 

확인

 

브랜치탭에 추가 된거 확인

 

 


https://www.youtube.com/@yalco-coding 얄코님 유튜브 내용 정리 ( 개인 공부용 )

 

역활 분배

 

 

프로젝트 주제

 

 

 

 

페이지별 와이어프레임

표지
문항
결과

 

 

 

 

 

 

내용 기획

문제

 

테스트 결과

 

 

기능명세

브랜치 생성 / 이동 / 삭제하기

 

브랜치 생성

git branch 생성할 브랜치 이름

 

 

 

브랜치 목록 확인

git branch ( 앞에 * 표시는 현재 위치한 브랜치 )

 

 

 

브랜치 이동

git switch 이동할 브랜치

 

소스트리에서 확인 / 아직 가지가 갈라지지 않음 ( 같은 버전에 존재하기 때문에 )

checkout 명령어가 Git 2.23 버전부터 switch, restore로 분리

 

 

 

브랜치 생성과 동시에 이동하기

git switch -c 새로 만들 브랜치명 ( 전 버전에서는 git checkout -b )

 

 

 

 브랜치 삭제하기

git branch -d 삭제할 브랜치명

 

 

브랜치 강제 삭제하기

git branch -D 강제삭제할 브랜치명

지워질 브랜치에만 있는 내용의 커밋이 있을 경우
즉 다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는 강제 삭제

 

 

 

 

브랜치 이름 바꾸기

git branch -m 기존 브랜치명 새 브랜치명

 

 

 

 

각각의 브랜치에서 서로 다른 작업해보기

main 브랜치에서 해당 작업 해보기

 

 

add-coach 브랜치에서 해당 작업 진행 해보기

 

new-teams 브랜치에서 해당 작업 해보기

 

 

결과

터미널에서 여러 브랜치의 내역 편리하게 보기 ( git log --all --decorate --oneline --graph ) 줄기도 확인 가능

 

소스트리 결과

 

 


 

 

 

서로 다른 브랜치를 합치는 두 방식

 

merge

두 브랜치를 한 커밋에 이어붙입니다.

브랜치 사용내역을 남길 필요가 있을 때 적합한 방식

merge

 

 

 

rebase

브랜치를 다른 브랜치에 이어붙입니다.

한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합

이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋다

rebase

 

 

 

 

 

merge로 합치기 ( 실습 ) 

add-coach 브랜치를 main 브랜치로 merge

 

main 브랜치로 이동

 

git merge 합칠 브랜치 // 해당 명령어로 병합

 

 

 

결과

병합 된거 확인

 

 

 

merge는 reset으로 되돌리기 가능

merge도 하나의 커밋이기 때문에 되돌리기 가능

Hard로 진행

 

merge 하기 전 해당 브랜치의 마지막 시점으로 돌아갈수 있음

 

다시 병합 해주고

 

 

병합된 브랜치는 삭제

 

 

 

 

 

 

rebase로 합치기

new-teams 브랜치를 main 브랜치로 rebase

new-teams 브랜치로 이동 ( merge때와는 반대 )
해당 명령어로 병합
main 브랜치가 뒤에 있는 상황 맨 앞으로 옮겨줘야됨
main브랜치로 이동
git merge new-teams 해당 명령어로 new-teams의 시점으로 fast-forward

 

new-teams 파일 추가 된 모습
new-teams 작업이 main에도 적용된거 확인

 

병합된 브랜치는 삭제
new-teams 제거 완료

 

 


 

 

 

충돌 해결하기

 

브랜치 간 충돌 ( 실습 ) 

파일의 같은 위치에 다른 내용이 입력된 상황

 

 

 

상황 만들기

해당 소스트리처럼 만들어짐

 

 

merge 충돌 해결하기

git merge conflict-1로 병합을 시도하면 충돌 발생

 

main 브랜치로 이동
merge를 하게되면 오류 메시지와
컴퓨터에서 어떤걸 사용할껀지 선택 하라고 나옴 ( 사진처럼 나오는 이유는 에디터때문에 )
수신 변경 사항 수락 선택 ( 충돌 부분 수정 완료 )
수정 완료 후 git add . / git commit 진행
:wq 저장 후 종료
소스트리에서 확인 해보면 main과 conflict-1 병합 된거 확인

 

 

위에 같은 상황에는 수정할게 1개 밖에 없어서 수정이 쉽지만 

만약에 당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단

git merge --abort

 

 

 

 

 

 

 

 

rebase 충돌 해결하기

conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생

 

conflict-2 브랜치로 이동
git rebase main 하게 되면 오류 메세지 나옴
git status 명령어 입력시 양 브랜치에서 이파일이 건드릴라고 한다. 선택을 해달라 메세지 나옴
merge랑 동일하게 vscode에서 선택 가능
수신 변경 사항 수락 ( 충돌 수정 완료 )

 

git add .
이번에는 commit이 아니라 continue ( 충돌이 모두 해결될 때까지 반복 )
일단 commit을 하라고 나옴 :wq 저장 후 나가기
또 다시 다른거도 충돌 났다고 수정해달라고 요청
여기선 현재 변경 사항 수락 선택 ( 선택은 자유, 수정도 가능 )

 

여기서도 git add . continue

 

저장 후 나가기 :wq
rebase 된거 확인

 

merge랑 동일하게 해결이 어려울 경우 해당 명령어 사용

 

main으로 이동 후
main을 맨 앞으로 옮기도록 merge conflict-2

 

conflict-1, conflict-2 삭제

 

 

 

 


 

 

 

SourceTree로 진행해보기

 

소스트리에서 브랜치 생성

 

 

 

vscode에서 Tigers 변경

소스트리에서 커밋 버튼 클릭 후

변경한 파일 스테이지에 올린 후 

Edit Tigers manager 커밋 메세지 작성 후 커밋

 

 

 

 

 

to-merge 브랜치 변경
Tigers의 coach를 Ruth로 변경
동일하게 소스트리에서 커밋

 

 

 

 

to-rebase 브랜치로 이동
Tigers의 memebers에 Tyler 추가
소스트리에서 커밋 진행
브랜치 탭에서 브랜치 더블 클릭시 브랜치 이동도 가능

 

 

 

 

 

 브랜치를 이동하며 파일 살펴보기

 

 

merge

소스트리에서 main으로 브랜치 이동 후

이동 시킬 브랜치 우클릭 현재 브랜치로 병합 클릭

to-merge 병합 완료

 

 

 

 

 

 

rebase

소스트리에서 to-rebase 브랜치로 이동 후 

main 브랜치 우클릭 ...재배치 클릭

main브랜치로 이동

to-rebase 우클릭 병합 ( merge )

뒤에 있던 main을 맨 앞 to-rebase랑 동일 선상 둠

 

 

 

 

 

 

to-merge와 to-rebase 우클릭하여 삭제
강제 삭제 체크 후 확인
완료 된 모습

 

 

 

 

 

merge 충돌 해결해보기

( rebase는 충돌 가능시 CLI로 진행 권장 ) 

 

실습 내용
실습내용 입력 후 merge하여 충돌 시켜보기
충돌메세지와 맨 앞에 커밋하지 않은 변경사항 생성 됨
vscode 확인 해보면 충돌난 내용 확인
충돌 내용 해결 완료 됫으면 저장 후 다시 소스트리로
스테이지 모두 올리기
커밋
충돌 해결하고 병합(merge)된거 확인

 

 

https://www.youtube.com/@yalco-coding 얄코님 유튜브 내용 정리 ( 개인 공부용 )

+ Recent posts