Git

Git(2) Github 깃허브, 리눅스

삼월은마치 2023. 8. 4. 15:04

리눅스 Linux

 

리눅스 환경 : WSL (Window Subsystem for Linux)

윈도우의 가상화 환경을 통해 리눅스를 설치하는 것

 

 


브랜치 Branch

 

나뭇가지. 버전을 여러 개의 흐름으로 관리하는 것

 

"버전의 분기"

 

한 서비스에 여러 기능을 합할 때 각각의 맞는 파트에 연결할 수 있다. (ex: 쇼핑몰 - 장바구니 기능 / 주문 기능 ...)

 

같은 코드를 다르게 수정했을 때 비교 가능

 

** 동작 **
1. 브랜치를 나눈다
2. 각자의 브랜치에서 작업
3. 나눈 브랜치를 필요시 합친다

 

최초의 브랜치 : main (나무 기둥)

이후 브랜치 : foo(나뭇가지1), bar(나뭇가지2)

 

 

 

⭐HEAD

현재 작업 중인 브랜치

 

 Checkout 

 HEAD를 옮기는 작업 (개발의 작업환경이 바뀌는 행위)

거의 일어나진 않고 특정 branch의 최신(마지막) 커밋에서 일어남.

 

 

새 브랜치 체크아웃 : foo한테 바로 일 시키는 것

foo한테 헤드가 가 있다.

 

 

 

foo 현재 헤드 상태에서 커밋

foo 3

 

 

다시 main으로 체크아웃해서 헤드 바꾸기

 

foo가 한 a 작업 파일이 안 보임.

 

 

 

실습

 

 

 

왼쪽 브랜치 메뉴에서

더블클릭해도 된다.

 

subCalc_c 파일이 안 보임.

 

 


브랜치 병합 Branch Merge

 

빨리감기 병합

 

1. 병합할 브랜치로 체크아웃 하기

 

2. 병합 당할 브랜치(subCalc) 선택하여 확인

 

 

 

병합시킨 브랜치의 커밋 메시지(subCalc3)는 남아있다.

 

 

main이 헤드이지만 이제 폴더에서도 subCalc_c가 보인다.

 

 

 


브랜치 끊어내기

 

브랜치 삭제된 상태

 

 


일반 병합

 

 

 

 

 

 

main을 체크아웃하고 c추가

 

 

왜 메인4인지 이해를 해야 한다.

 

 

 

1

 

 

2
3

 

 

 

병합 끝난 후 브랜치 bar 삭제 결과

 


충돌

 

브랜치로 맡겨 놓고 본인도 메인에서 코드를 수정하고 있는 경우

 

 

1

 

1. foo 브랜치로 옮긴 후 푸가 소스코드 수정, 푸2로 커밋

 

 

 

2. main으로 체크아웃 후 main에서 소스코드 수정

 

 

3. main에 foo 브랜치를 병합시키면?

 

 

같은 a 파일에 대해 내용이 다르므로 충돌한다.

 

충돌 해결

 

 

내 것 : 현재 헤드 브랜치 main

저장소 : 나머지 브랜치 foo

 

다시 파일 열어보면 이렇게 바뀌어있으니 다시 저장해서 커밋을 하자.

 

 

 

충돌 해결

 

 

❗사전 예방

각 브랜치에서 다른 파일로 작업하면 충돌을 예방할 수 있다.

 

 


충돌 방지

 

예시) import 문처럼 다른 파일로 만들어둔 걸 삽입하는 방식이 좋다.

 

 


브랜치 재배치

 

 

설계가 잘못되었다는 뜻. 가급적 지양 -> 이런 일은 다시 해야 함(그냥 옮겨갈 브랜치에서 새로 코드 짜는 게 낫다)

 

 

 

 


리눅스 Linux

 

리눅스 설치

 

1. 파워쉘 관리자권한으로 실행

 

2. 명령어 입력

 wsl --install 입력하고 엔터

 

 

설치 중 화면

 

+) 설치 중 화면에서 호스트 창 뜨면 '예'

 

 

설치 완료

우분투가 기본 설치됨(20.04)

*우분투는 리눅스의 종류 중 하나. 리눅스의 배포판

 

필요시 데비안도 설치 가능

 

 

 

3. 재부팅 후 켜면 이 창이 자동으로 나온다.

 

우분투를 시작하는 중

 

4. 입력을 하자

gituser 입력

패스워드는 원래 안 보인다. (난 221031 입력함)

그 다음은 재확인이고 엔터치고 기다리면 밑에 화면 나온다.

 

세팅 끝

 

 


 


깃허브 Github

 

 

백업 & 협업

 

레포지토리를 새로 만들자.

프로필에서 [Repositories] - 초록색 [new] 버튼

 

사진의 설명에 따라 작성해주자.

 

 

 

새로 만든 repository에 더미 Dummy 파일 생성하기

 

creating a new file 클릭 

 

 

commit changes 초록 버튼 누르면 커밋된다.

 


  • 깃허브와 소스트리 연동

 

 

HTTPS : 계정, 암호로 연결

SSH : 접속할 PC에서 인증키를 생성해서 등록해야 하므로 보안이 더 강함 (ex: 은행 공인인증서 등)

 

 

 

 

1. 소스트리를 열어 [도구] - [옵션] - [인증]

 

 

 

계정에서 [추가] -  호스팅 서비스 Github 선택 후

토큰 새로고침 누르면 창이 뜬다.

 

 

 

 

 

Authorize atlassian 버튼 클릭

 

 

 

confirm

confirm 클릭

 

 

 

 

 

※ 이 창은 한 번 연동된 후에는 빈 페이지에 링크(주소창에)만 뜨는데, 이 때 토큰 새로고침 버튼이 있던 팝업창에 가서 확인만 누르면 된다. 그냥 한 번 연동하면 바로 remote에서 계정 선택하고 새로고침 눌러 확인하면 된다.

여기 주소 끝에 보면 authenticated 라고 되어있는데 그럼 된 것이다.

 

 

확인

 

 


 

연동 이후 계속 반복할 구간 ⬇️

 

Remote에서 보면 연결되어 있음을 알 수 있다.

 

 

 

 

 

계정에서 레포지토리 선택 후 ⭐새로고침 버튼, 목록 보이면 Clone 클릭

 

 

git 마크와 함께 저장소입니다 라고 뜨면 연동된 것

경로 설정 후 파일명을 설정해 준다. 파일명 : first

[클론] 클릭

    ❗파일명은 깃헙 레포지토리 이름과 동일해야 헷갈리지 않는다.

 

 

상단 깃허브에서 바로 생성했던 파일이 연동된 걸 확인할 수 있다.

 

 


푸시 Push

 

 

 

일단 PC에서 새 파일을 만들어서 커밋을 추가해 보자.

 

 

 

 

⭐origin/ 은 깃허브를 의미한다.

 

"깃허브의 main branch가 첫 번째에 머물러있다"

 

위에 있는 그냥 main은 현재 pc의 브랜치이다.

 

브랜치에서 [ 1 ⬆️ ] 이것은 push 할 항목이 하나 있다는 뜻 (또는 브랜치가 1개 더 있다?)

 

 

 

상단 메뉴에서 1이 떠 있는 push를 누르고 해당 창에서 [Push] 클릭

 

 

main과 origin/main이 합쳐졌다.

 

깃허브 확인

 

 

Push 완료