KDT/Cloud

240308 Cloud - Git & GitHub 1

001cloudid 2024. 3. 8. 12:50
728x90
더보기

순서대로 진행해야함

Git 설치

  1. Standalone Installer에서 비트에 맞게 다운로드
  2. 기본값으로 설정해서 설치
  3. 설치가 완료 되었으면 우클릭 - Open Git Bash here
  4. git
    git과 관련된 명령어
  5. git --version
    git 버전 확인

 

로컬 저장소 만들기

컴퓨터에 git과 연결할 로컬저장소를 생성

로컬 저장소는 실제 Git을 통해 버전관리가 이루어질 컴퓨터 내의 폴더

  1. D드라이브 StudyGit 폴더 생성
  2. StudyGit 폴더 안에 README.txt 텍스트 파일을 생성
  3. README.txt에 아무 내용을 넣고 저장
  4. 폴더 안에서 마우스 우클릭 후 Open Git Bash here
  5. git init
    초기화 작업(폴더 안에 숨긴 폴더로 .git이 생성됨 ※리눅스에서 .은 숨긴 파일을 뜻함)
  6. '.git' 폴더에는 Git으로 생성한 버전들의 정보와 원격저장소 주소 등이 들어 있음
    '.git'폴더를 로컬 저장소라고 부름

 

커밋 만들기

README.txt 파일을 하나의 버전으로 만듦

Git에서 생성된 각 버전을 커밋(Commit)이라고 부름

  1. 버전 관리를 위해서 내 정보를 등록해야함. 각 버전을 누가 만들었는지 알아야 협업하기 편하기 때문
    git config --global user.email "이메일주소"
    git config --global user.name "git유저명"
  2. 커밋에 추가할 파일을 선택
    git add README.txt (스테이지에 올림)
    git add . => 모든 파일을 GitHub에 올릴 때 사용
  3. git status
    입력하면 new file : README.txt가 보임. 새로운 버전(커밋, Commit)을 생성하게 되면 추가될 파일
    git status는 필수 명령어는 아님
  4. 상세 설명과 함께 커밋을 만듦
    git commit -m "상세 설명" //git commit -m "새 프로젝트 시작"
  5. README.txt 파일을 수정 후 저장
    git status
    modified:   README.txt 라는 문구.수정이 되었다 뜻이며, 현재 버전과 이전 버전(앞에서 만든 커밋)이 다름을 알려줌
  6. 두번째 커밋을 만듦
    git add .
    git commit -m "상세 설명" // git commit -m "새 프로젝트 수정"
    => 1 file changed, 1 insertion(+), 1 deletion(-) 화면에 출력되면 성공

 

커밋 이동

  1. 현재 README.txt 파일의 내용은 두번째 커밋, "Helloo Git"의 내용을 가지고 있음
    첫번째 커밋으로 이동
    git log
    => 지금까지 만든 커밋을 확인할 수 있음
  2. 두 개의 커밋을 확인할 수 있음(그림 1)
    되돌리려는 커밋은 첫 번째 커밋이고, 앞에서부터 7자리(혹은 전체) 아이디를 복사하고 checkout 명령어로 해당 커밋으로 되돌림
    git checkout fd162f182ff843044b452ee37b3bb92e65090377
    => README.txt를 열어보면 처음 저장한 것으로 돌아가있음
    ※ 커밋은 저장
  3. 두 번째 커밋으로  이동하기
    git checkout -
    => 최신 커밋으로 이동
    => Helloo Git의 내용이 들어있는 README.txt 확인 가능

 

그림 1.

 

원격저장소 만들기

원격저장소(Repository)는 프로젝트를 위한 공용 폴더 정도로 생각하면 됨

  1. GitHub 접속 후 로그인 우측 상단에 + 아이콘 New repository 클릭
  2. Repository name에 이름을 작성 후 Create Repository
  3. github.com/유저이름/repository name

 

원격저장소에 커밋 올리기

  1. StudyGit 폴더의 Git Bash로 돌아와서
    git remote add origin .git으로 끝나는 주소
    => remoto add origin 명령어로 로컬저장소에 원격저장소 주소를 알려줌
  2. git remote -v
    => 생성한 원격저장소 주소 확인
  3. 로컬저장소에 있는 커밋들을 push 명령어로 원격저장소에 업로드
    git push origin master
    => GitHub의 로그인창이 뜸
  4. Sign in with your brower 클릭 로그인 진행
    => 로그인 성공하면 입력했던 명령어가 실행
  5. GitHub 페이지로 이동해서 새로고침을 하면 원격저장소의 내용이 변경되어 있음.
    README.txt 파일이 생성되어 있고, 내용도 확인할 수 있음
  6. StudyGit 폴더에 index.html을 생성하고 원격저장소에 push
    1) StudyGit 폴더에 index.html 만들기 git status
    2) git add .
    3) git commit -m "세 번째 커밋(index.html 추가)"
    4) git push origin master
  7. GitHub 페이지로 이동해서 새로고침을 하면 원격저장소에 index.html이 들어가 있

 

원격저장소의 커밋을 로컬저장소에 내려받기

원격저장소의 코드와 버전(커밋) 전체를 내 컴퓨터에 내려받는 것을 클론(clone)이라고 함

  1. D 드라이브 StudyGit2 폴더 생성
  2. StudyGit2 폴더 안에서 Open Git Bash Here 선택
  3. GitHub 페이지에서 Code URL 복사
    git clone 복사한주소 . (주소와 . 사이 스페이스바 있음)
     => 현재 폴더(StudyGit2)에 원격저장소를 내려받음
    => . 이 없으면 폴더(Repository name)가 생기고 그 안에 파일이 내려받아짐 
  4. StudyGit2에 있는 README.txt 파일을 수정하고 저장
  5. 변경된 내용을 원격저장소에 push
    git add .
    git commit -m "hello world 추가"
    git push origin master

 

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

StudyGit과 StudyGit2의 버전이 다름

(StudyGit2 폴더에 있는 README.txt 내용과 StudyGit 폴더에 있는 README.txt 내용이 다름

현재 원격저장소에는 StudyGit2의 커밋이 반영되어 있음)

  1. StudyGit 폴더의 Git Bash 실행
  2. git pull origin master
    => pull 원격저장소에 새로운 커밋이 있다면 내 로컬저장소에 받아오는 명령어
  3.  1 file changed, 2 insertions(+) 메세지와 함께 README.txt 파일이 새 버전으로 갱신

 

GUI 환경에서 버전 관리 - 소스트리

  1. https://www.sourcetreeapp.com/ 에서 다운로드
  2. 설치
    Bitbucket 클릭 후 계정 만들기
    Regustration Mercurial 체크해제
    도구 설치 소스트리에서 Git을 사용할 기본 계정으로 사용할 Git 계정을 설정. GitHubㅔ서 가입했던 계정 정보 입력
    SSH 키를 불러오시겠습니까? 아니오
  3. 소스트리 메인 화면(그림 2)

그림 2.

 

소스트리에서 GitHub 로그인하기

소스트리 메인화면에서 원격저장소 탭인 Remote 탭을 클릭 

기본적으로 Bitbucket이 호스팅 사이트로 되어 있음

GitHub를 Git 호스팅 사이트로 사용할 것이므로 기본 설정값을 변경

  1. Bitbucket 계정에서 마우스 오른쪽 버튼 계정 편집
  2. 호스팅 계정편집 - 호스팅 서비스 : GitHub로 변경 , OAuth 토큰 새로버침 버튼 클릭(GitHub 인증 화면 인터넷창이 뜸) 
    - 확인
  3. GitHub에 등록한 원격저장소 목록이 보이지 않을 경우 소스트리에 새로고침 버튼 클릭

 

VSCode 설치

텍스트 에디터

  1. 기본값으로 설치(다음-다음-...-완료)
  2. 테마는 기본적으로 Dark. 추후 변경하고자할 때 File - Preferences - Theme - Color Theme 에서 변경할 수 있음
  3. Ctrl + O 단축키를 사용하여 StudyGit 폴더에 README.txt 파일 열기

 

소스트리로 GIT 버전 관리하기

  1. 소스트리 실행하고 Add 버튼 클릭
  2. 작업 경로 : StudyGit 폴더 선택 한 후 추가
  3. StudyGit 로컬저장소에서 버전 관리를 할 수 있는 새로운 탭이 열림
    History 클릭하면 지금까지 한 커밋을 확인할 수 있음

 

소스트리로 커밋 만들고 푸시하기

메모장 대신 VSCode로 파일을 만들고 수정

  1. VSCode 실행
  2. File - Open Folder - StudyGit 폴더 선택
  3. NewFile - subject-list.md
    =========================================
    1. JAVA
    2. JSP
    3. DATABASE
    ==========================================
    작성 후 저장
    ※ .md 확장자는 txt 확장자와 동일하게 텍스트 문서를 적기 위한 파일을 의미함(마크다운 문서라고도 부름)
    NewFile - student-list.md
    =========================================
    # 훈련생 목록
    1. 단군
    2. 웅녀
    =========================================

 

소스트리에서 파일을 선택(add)하고 커밋(commit)으로 만들기

새파일을 생성하면 그래프 최상단에 '커밋하지 않은 변경사항'이라고 나타남

스테이지에 올라가지 않은 파일(git add .) 모두 스테이지에 올리기 또는 + 버튼으로 원하는 것만 올릴 수 있음

스테이지에 올라가야 push 할 수 있음

  1. 소스트리 좌측 상단에 커밋 버튼을 클릭
  2. + 버튼으로 student-list.md 오른쪽에 있는 + 아이콘을 클릭
  3. 스테이지에 올라간 파일로 변경. Git Bash 창에서 'git add student-list.md' 명령어와 동일함
  4. subject-list.md 파일도 + 아이콘을 눌러 스테이지에 올라간 파일로 변경
  5. 하단에 텍스트 박스에 "과목, 훈련생 리스트 추가" 입력. Git Bash 창에 'git commit -m "내용"' 명령어와 동일
  6. 우측 하단 커밋 버튼 클릭하면 커밋 생성
  7. History 탭을 누르면 "과목, 훈련생 리스트 추가" 커밋이 만들어진 것을 확인 할 수 있음

 

커밋을 원격저장소에 push

그림 3.

 

master : 로컬저장소, origin/master : 원격저장소

 

  1. 새로 만든 커밋을 원격저장소에 업로드
    소스트리 상단의 Push 버튼을 클릭, master 옆에 체크박스를 체크 한 후 Push 버큰 클릭
    => 'git push origin master' 명령어와 동일
  2. push를 한 후 History를 보면 master와 origin/master가 같은 라인에 위치함
    즉, 로컬저장소와 원격저장소 모두 최신 버전(커밋)

 

여러 명이 함께 Git 협업

  1. 프로젝트에서 A가 팀장을 맡았고 A의 GitHub 계정에 저장소를 생성하여 master를 관리.
    A는 우선 자신의 GitHub계정에 저장소를 생성(reservation_project)
  2. A는 자신의 로컬저장소를 이용해 작업을 진행
    이클립스로 Project_EX 프로젝트를 생성
    A는 메인페이지를 담당하여 'introduction'이라는 폴더를 생성하고 introduction.jsp를 생성
  3. Project_EX 폴더에 git 초기화 및 커밋, 푸시
    VSCode Open Folder Project_EX
    Ctrl+` (terminal)+ 버튼으로 Git Base으로 변경(기본값 powershell)
    git init
    git add .
    git commit -m "first commit"
    git remote add origin https://github.com/mystory001/reservation_project.git
    git push origin master
  4. A는 자신의 GitHub에 파일이 잘 업로드 되었는지 확인(새로고침)
  5. 프로젝트 조원 B의 경우. B는 관리자 페이지를 담당
    A가 만들고 업로드 한 github에 작성된 버전을 받아옴
    이때 git pull 명령어를 사용
  6. B의 작업 pull로 받아오기
    VSCode로 새 창 열기 - 폴더 열기 - workspace_web 폴더 선택
    Ctrl + ` + 버튼으로 Git Base로 변경 후
    git clone https://github.com/mystory001/reservation_project.git Project_EX_B
  7.  VSCode와 워크스페이스에는 존재하지만 이클립스에는 없음. import
  8. VSCode의 폴더 열기를 선택하고 Proejct_EX_B를 선택
    (또는 Project_EX_B 폴더로 이동하여 Open Git Bash Here)
  9. A가 만든 introduction 폴더에 introduction.jsp가 보이고
    B는 관리자 페이지를 담당하여 admin 폴더를 생성하고 adminMain.jsp를 생성
    B는 VSCode에서 터미널을 열어(Ctrl + `)
    git add .
    git commit -m "B의 첫 커밋. admin 폴더와 adminMain.jsp 생성"
    여기서 커밋 결과를 github에 업로드시 git push origin master를 하면 안됨. master는 A가 마지막에 합쳐서 프로젝트 합본을 만들 때 사용. 따라서 B는 master와는 별개의 공간인 곳에서 자신의 작업을 진행해야 함
    git checkout -b branch_B => B가 가지를 만듦
728x90

'KDT > Cloud' 카테고리의 다른 글

240322 Cloud - 칼리 리눅스(Kali Linux)  (0) 2024.03.22
240315 Cloud - Git & GitHub 2  (0) 2024.03.15
240223 Cloud - HTTPS  (0) 2024.02.23
240216 Cloud  (0) 2024.02.16
240202 Cloud  (0) 2024.02.02