D+82::gitHub 사용법 (1)

Am.Vinch·2022년 10월 26일
0
post-thumbnail

20221025_mon

GitHub

cf) 깃허브 선생님 추천 유투브 : https://www.youtube.com/watch?v=1I3hMwQU6GU

  • 구글에 git 을 검색하면 나오는 첫 홈페이지 들어가기
    : (어제 회원가입한 곳(GitHub.com)과 다르다!)
    : 실무에서 많이 사용하며 포트폴리오용으로 사용한다.

: https://git-scm.com/

  • 오른쪽 다운로드 버튼 클릭
  • 파란색 글씨 맨 윗줄 클릭 히어 투 다운로드 클릭 후, 파일 저장하기
  • 저장후 파일 클릭하여 실행
  • 실행하면서 아무 체크박스 선택없이 계속 next하며 설치하면 된다.

  • 위에 체크박스만 선택 후, finish 클릭
  • 다음과 같은 창이 뜬다.

검은 화면에 달러 $ 옆에 바로 git --version 를 친다.
그리고 엔터 누르면 다음과 같은 화면이 정상적으로 출력이 된다.

  • 마우스 오른쪽 클릭 옵션 설정 클릭(글자,폰트색상,배경색상...)

  • 사용자에게 기능을 사용할 수 있도록 하는 디자인 방식
    : CLI/GUI

  • CLI(command Line interface) : 그래픽이 아니라 라인(커맨드,명령어)를 쳐서 진행시키는 방식, 요즘 사용많이 하는 방식 ex) 리눅스마스터
    : 우리가 사용해야하는 방식!!

  • GUI(graphic user interface) : 그래픽으로 기능 진행시키는 방법 ex)주로 디자이너

  • git 실행시키는 방법
    :바탕화면 혹은 다른 곳에서 마우스 오른쪽 클릭 후, GUI BASH Here 클릭 시 실행가능하다.

  • git 종료시키는 방법
    : exit 입력후 엔터키 치기


먼저 깃 실행 전, 이클립스 실행 후 자바프로젝트 생성

  • Exam01 클래스 파일 생성

  • 깃 연결시키기

  • 특정 파일을 선택하여 클릭하면 그 파일들만 깃에서 관리하게 되는 것이다.

  • 보기> 숨긴 항목 보기에도 체크박스 체크해줘야한다

  • 마우스 우측 하여 깃 실행시키기

  • 오른쪽 글자가 현재 위치를 알려준다.
    : !유의할 점! 항상 깃(git)을 실행할 때는 내가 어디서 관리하는지 위치를 잘 클릭 후 파일경로 위치를 설정해야한다.
    : KH202-18@DESKTOP-T4LA0MC MINGW64 /d/wockspaceHTML/Git Test


Git으로 프로젝트 관리하는 방법 (single ver.)

Git으로 프로젝트 관리하는 방법

  • 주로 사용하는 방식 : 버전관리,공유,협업
  • 왜 사용하는가?
    • 버전관리를 클라우드 사용시 보다 사용하는 이유???
      • 클라우드를 사용시
        : 클라우드를 사용시, 업데이트 이전의 옛날 버전들의 파일들을 계속 누적시켜서 보관하게되기 때문에 이를 관리하기가 힘들고 간편하지 않다.
        그래서 만약 이전 버전들을 찾아서 보고싶을 때, 백업시켰던 파일을 다시 돌아가서 가져와야하지만,
      • 깃을 사용
        : 이 때, 깃을 사용하면 파일 하나만 있어도 원하는 이전 버전으로 언제든 사진처럼 가져와서 사용 할 수 있다.
    • 공유와 협업시 용이 한 점
      : 모두가 한 곳(깃)에서 각각 수정하고 변경,저장을 동시에 작업 진행이 가능할 수 있어서 팀프로젝트에 용이하다. 별도로 백업이나 저장을 한 사람이 담당하여 관리하지 않아도 된다.

0.참고 커맨드 (보편적 사용하는 명령어)

  • git --version (띄어쓰기 중요): 설치된 깃의 버전정보를 확인할 수 있다.

  • exit : git bash 종료

  • clear : 현재 화면 초기화(백지상태로 글자만 삭제)

  • git status : 현재 깃의 상태, 수시로 치면서 확인가능하다
    : 파일은 있는데 어떤지 모르겠어서 아래와 같이 untracked files로 빨간색 표시가 된다.


[ pc에 있는 프로젝트를 깃허브에 올리는 방법 ]

1. 계정이름 및 메일정보 셋팅(최초 1회만 실행)

  • git config --global user.name"깃허브이름" : 깃 사용자의 이름 변경
  • git config --global user.email"깃허브이메일주소" : 깃사용자의 메일 변경
  • git config --global user.name : 현재 설정된 사용자의 이름 출력
  • git config --global user.email : 현재 설정된 사용자의 메일 출력
    !유의!
    : 이렇게 설정된 값은 초기화하기 전까지 그대로 저장된다. 만약 수정을 원하면 다시 치면 된다.
  • git log : 현재까지 커밋 목록 출력

연결 해야할 원격 저장소 위치가 잘못 되었을 때 변경 방법

<연결 해야할 원격 저장소 위치가 잘못 되었을 때 변경 방법>

  • git remote remove origin : 저장소 지우기
  • git remote add origin 원격 저장소 url : 새롭게 위치 설정(변경하기)

설명

: git config --global user.name 치고 엔터치기
: 끝에 "" 안에 이름을 입력하면 이름을 설정할 수 있다.
: 이는 실제 사용하는 연동시킬 깃허브 계정의 이름을 넣어야한다. -> "AmVinch"

: git config --global user.email 치고 엔터치기
: 끝에 "" 안에 이메일을 입력하면 설정할 수 있다.
: 이는 실제 사용하는 연동시킬 깃허브 계정의 이메일을 넣어야한다. -> "ub997@naver.com"

잘 입력되었는지 확인하는 방법
: 같은 명령어에 끝에 문자값 "" 넣는 것을 제외하고 입력한 뒤 엔터를 누르면 아래 바로 내가 입력한 값들이 떠서 확인가능하다.


2. 깃과 해당 프로그램 연동(프로젝트당 최초1회만 실행)

  • 1) git init : .git이라는 폴더가 생성되면서 해당 경로의 파일들을 깃의 관리대상으로 두기시작한다.(연동 시키는 명령어)
    : (내 pc 내의 관리하려는 파일 )---연동---(.git 폴더)
  • 2) git add . : 모든 파일을 git관리하겠다.(git에 만든 파일 전체가 '.' 으로 나타냄)
    : 장바구니(정식명 : stage 스테이지)에서 상품을 등록한 느낌처럼 연동시킨 파일들을 실제로 다이렉트로 .git에서 작동을 시키는 것이아니라 예비주머니로 별도 폴더를 만들어 연동시킨 것과 같다.

<참고>

  • 특정 폴더만 add할 경우
    • src/ 폴더만 add할 경우 : git add src/
    • bin/폴더만 add할 경우 : git add bin/
  • add 할때 주의 사항
    👀
    add 하기 전에 반드시 이력관리에서 제거할 항목을 지정해야 한다.👀
  • 3) .gitignore 파일 생성 후 제외할 파일 및 폴더명 작성 후 저장한다.

    • 선생님이 보내주신 빈메모장 파일 gitTest폴더안에 복사붙여넣기(혹은 그냥 메모장 킨 후 메모장명을 ".gitignore"로 변경하여 gitTest 폴더 내에 저장하여 사용하면 된다.)

    • 메모장에 넣은 파일은 git status를 쳐서 상태확인 시, 제거된 것을 확인가능하다.

    • 이제 총 제외할 파일들을 .gitignore메모장 파일에 적고 저장한다.

    • 다시 git status 를 치면 현재 상태 확인가능하다.

    • 다시 git add . 을 친다.(stage연동)
      그리고,어디까지 프로젝트가 진행되는지 확인한다.(status)


3. local Repository --> 커밋commit 실행(버전을 생성)

  • git commit -m "커밋내용" : 커밋할 내용 메세지저장해서 확인가능하다.
  • git status로 메세지 커밋확인 하기

ex) 수정을 했을 때 commit 확인은?

  • 만약 프로젝트 수정시, commit 재확인

    • 이클립스에서 이전 생성했던 파일을 수정한 뒤 저장 후 다시 git commit을 칠 경우, 이전과다른 명령어가 실행됨을 알 수 있다.
      (변경이 확인되었다는 뜻)
  • 이클립스 수정 하기

  • git에서 명령어로 수정된 상태를 확인하기
    : 이전 커밋 git status 를 입력했을 때와 다른 결과가 출력이되는 것을 확인할 수 있다.

  • 이렇게 바뀐 내용을 장바구니(stage)에 담겨서 확인하기.

  • 위 수정된 내용이 잘 들어갔다고 메세지를 커밋시키면 최종본을 만든 것과 같다.
    그리고 바로 상태를 확인 시키면 바뀐내용이 없다고 뜨는 것을 확인 할 수 있다.

  • git log : 현재 까지 커밋 목록을 출력.최종 수정본에 대해 알려준 것과 같다.


현재 까지의 버전관리 정리

  • 1) 프로젝트 생성
  • 2) 출력문 한 줄 추가
    // 지금까지 해놓은 작업
    //아래 작업을 더 추가할 예정
  • 3) 파일 생성 및 삭제
    : class를 Exam02 하나 더 생성한다.
    : 그리고 기존에 있던 Exam01 클래스파일은 삭제한다.
  • 4) 파일 생성 및 삭제 취소하기
  • 결과를 알아보자
    : 삭제된 파일(deleted: src/test/Exam01.java)과 untracked된 파일(src/test/Exam02.java)을 각각 알려준다.

    • 이렇게 변경된 사항들을 장바구니(stage)에 올려야한다. 그리고 상태확인
  • 커밋하여 누가봐도 알 수있도록 메세지 설정

파일 생성 및 삭제

  • reset / revert 명령어 사용한다.
    • reset : 완전 초기화
    • revert : 과거버전으로 돌아갔다는 행적을 남긴다.
      : git log 치면 커밋했던 아이디(commint 뒤에 노란색 글자)가 각각 부여되는데 이를 가지고 돌아갈 수 있다.
  • reset 했을 때

4. commit 실행 취소 및 예전상태로 돌아가려면 reset을 시키면된다.

  • 1) git log명령어로 커밋 로그를 확인.

    이 때 이동하고자 하는 커밋 지점의 커밋해시(ID값)를 복사해 놓는다.

  • 2) git reset -hard (커밋해시)

    <참고>

  • git 복사 붙여넣기 단축키
    : git은 기존 복붙단축키(ctrl+C/V)와 다르다 유의하기!!!

    • 복사 : ctrl + insert
    • 붙어넣기 : shift + insert

gitHub 사이트 들어가서 연동하기

  • 1 저장소 "create repostiory" 생성하기
  • 2 저장소 생성 버튼 클릭 하면 아래 페이지로 이동
  • 3 실제 경로를 알려주면 팀프로젝트시 팀원들이 접근가능해진다.

5. local Repository와 remote repository 연결(프로젝트당 최초 1회만)

git remote add origin 저장소 url 입력하기

알아두기
working sapce : 실제 작업장소
local Repository : 지역저장소
remote Repository : 원격저장공간

  • 지역저장소와 원격저장소(나의 깃허브 주소)를 연결시키기.

  • 그러면 자동으로 연결된 팝업창 뜬다. 이후 Token 클릭하여 나의 토큰암호 입력 후 sign in 한다.

6 연결된 remote Repository로 파일 전송

git push master 입력하기

깃허브와 연동 결과 확인

  • 위 팝업창에 나의 토크 입력 후 로그인 한 뒤 깃의 화면이 다음과 같이 뜬다.

  • 실제 깃허브 홈페이지 새로고침하면 연동확인

  • 우측 상단의 2 hours ago 누르면 커밋기록 내역 확인가능

  • 클릭 후 이동 페이지로 상세히 확인 가능.


마지막 변경 확인 순서

  • 한 번만 연결하면
    : 변경 - add - commit - push 순서 기억하기!!!


[ 깃허브에 올려진 프로젝트를 내려받는 방법 ]

1. 깃허브에 올라간 파일을 내려받을 폴더를 먼저 지정

  • cloneSpringTest 새폴더 생성

2. 생성된 폴더안에서 마우스 우측클릭 후,git bash를 실행해야한다.

  • 새로 실행하여 git 실행창 띄우기

단,해당 pc에서 git bash를 최초 실행한 경우라면, 사용자정보(이름,이메일)부터 셋팅해준다.

3. clone 명령어를 실행해서 깃허브의 파일을 복제해온다.

  • git clone (원격저장소 url)
    : 새로고침한 뒤, "code"를 클릭하기

    : 복사한다.

    : 붙여넣어 엔터친 후, 아래 결과내용을 확인한다.

    : 이후 다시 cloneSpringTest 폴더를 보면 SpringGitTest 스프링프로젝트가 들어있는 것을 확인가능하다.

  • 새 폴더 생성 : cloneGit

    : "새폴더" 를 선택 > launch 클릭하면 새로열린다.

  • 좌측상단 File 클릭 후, open project... 세번째 선택

  • Directory 클릭하기

  • 폴더가 열리면, D드라이브 > workspaceSTS > cloneSpringTest > SpringGitTest 클릭하여 폴더선택한다.
    : 이는 여태까지 만든 파일 폴더와 연동시키기위해서

  • 폴더 선택 후 finish 클릭하기.

  • 마지막은 finish 누르면, 파일로딩 후 이렇게 받아오게된다.
    : 이렇게 하는 이유는 import를 따로 하지않아도 이렇게 자동으로 만들어주는 파일을 여기서 만들어줘서 문제없이 실행이된다.


결국 우리는 하나의 pc에 두개를 다운받은 셈이다. 하나는 올린것 하나는 다운받은 것이다.

실제로 해보자.

    1. class 생성

      (글자폰트 변경 참고)_ window > workspace >
    1. 프로젝트 우측클릭하고 맨 아래 properites 클릭하여 저장소 들어가면, 이렇게 .git 폴더가 자동생성된 것을 확인가능하다.
    1. 작업을 하는 이 폴더내에서 git파일을 연다.
      : git status 코드를 쳐서 현재 상태를 확인한다.
    1. git add . 입력해서 장바구니 stage에 담는다.
    1. 커밋하여 최종본 저장하기.
    1. git push origin master 를 입력하면 아래 결과를 통해 잘 연결되었는지 확인가능하다.
    1. 가장 확실히 확인해야하는 것은 github가서 다시 확인한다.

  • <참고>
    : fetch + merge = pull 해야한다.
    -> 상세설명 하이퍼링크 : https://kotlinworld.com/288

  • 강의실에서 올린 파일 들어가기.

  • 집 pc에서 올린것 다시 들어가기
    : 프로그램을 열어 확인하기.

  • SpringGitTest 프로젝트 우측클릭 후, properties > 위치경로 > !!집에서 했던!! cloneGitTest 폴더를 !!!! 선택 들어가기

  • 좌측상단 > File > switch.. > other > Browse..클릭

  • 다음 cloneSpringTest 폴더선택 누르기

  • 해당파일내에서 git 실행하기

  • git pull origin master 입력하기 엔터치기
  • 집에서 했던 결과를 강의실에서 결과 확인하기.
    : 강의실에서 한 줄만 출력했던 memberVO 클래스파일을 집에서 export로 가져가 여러줄로 수정해서 저장한 뒤, 강의실로 가져오니까 이렇게 수정된 채로 그대로 import처럼 가져올 수 있었다.

실습 예제 1

실습내용
1. java 프로젝트 생성 프로젝트명 : GitTest2
2. 프로젝트에 Hello.java 파일 생성 후 "반갑습니다" 출력하는 코드 작성
3. 위에서 만들어진 프로젝트를 깃이 관리하도록 연결
4. src/, .gitignore 파일만 깃이 관리하도록 지정
5. 첫번째 커밋으로 "두번째 프로젝트 생성".
6. 만들어진 프로젝트를 원격 저장소(Second_Test)에 저장
7. Hello.java 파일에 "또 만나요" 출력문 추가.
Test1.java파일 생성 및 메인메소드만 생성
Test2.java 파일 생성 및 메인메소드만 생성
8. 지금까지의 작업을 리모트 레포지토리에 "두번쨰 커밋"으로 저장
9. Test2.java 파일을 삭제하고 Test1.java 파일에 출력문 하나 추가
10. 위의 작업 까지를 "세번째 커밋"으로 저장


풀면서 문제점 발생

  • 깃허브 원격저장소에서 만든 두번째저장소를 (Second_Test.git)로 연동을 시키려고 했으나, 이미 존재하는 파일이라며 error가 출력되었다.
  • 그래서 자꾸 실습내용을 모두 마무리짓고 마지막 Second_test 저장소의 저장된 커밋내용들이 아무리 새로고침을 해도 보이지 않았다.
  • 알고보니, 모두 First_Test 저장소에 연동이되어있더거라 Second_Test 저장소에 아무런 반응이 없던것이다.
    : 밑줄된 부분이 git push master 코드를 쳤을 때 연동되어 보여지는 파일위치를 말한다.

문제점 원인파악

  • 이미 이전에 만들었던 Git Test폴더내에 .git폴더가 있는데 여기로 연결이 되어 기존에 있는 파일이라며 에러가 났던 것이다.
    : Git Test(프로젝트)폴더와 Git Test2(프로젝트) 폴더 내에는 .git이라는 폴더가 동일한 이름으로 각각 존재한다.

문제점 해결방안

  • 그래서 이를 해결하기위해서는 First_test 저장소가 아닌 내가 원래 저장하려던 Second_test 저장 폴더로 다시 세팅해줘야한다. 그럴때 또 다시 $ git remote add origin https://github.com/AmVinch/Second_Test.git이라고 치면 에러가 발생하니, 다른 변경 명령어를 사용해야한다.
    : git remote set-url(원격저장소)
    그래서 다시 원격저장소명을 복붙하여 코드를 치고 확인하니 문제를 해결 할 수 있었다.
    $ git remote set-url origin https://github.com/AmVinch/Second_Test.git
  • 해결)
    : second_test 폴더명 원격remote 명령어 입력 후 > push 입력시 저장소 위치 확인

    : To https://github.com/AmVinch/Second_Test.git 그래서 위의 이전 에러났을 때 push 명령어 결과와 다른 위치임을 파악할 수 있었다.

문제점 해결 결과

  • 1) 새로고침하거나 자동으로 커밋내역확인 가능하다.
  • 2) 우측상단의 1hours 클릭시, 상세내역조회가능하다.

실습 예제 2

실습내용

[깃허브에 올리기]

    1. 가장 먼저 해야할일
      : 프로젝트 properties > 위치경로 클릭 > 폴더클릭 > .gitignore > 메모장 수정
    1. java 프로젝트 생성 프로젝트명 : SpringGitTest2
    1. 해당 프로젝틀르 springGitTest2 라는 원격저장소에 올리기

      : 확인 완료

[깃허브에 내려받기]

    1. 집(D:\worksapceSTS\cloneSpringTest)위치에 강의실에서 올린 프로젝트를 내려받는다.
      : cloneSpringTest(집)
    1. 내려받은 프로젝트를 집의 sts에서 프로젝트로 받아옵니다.
      : 아무내용이나 추가해서 원격저장소에 저장한다.
      : 연동완료 확인

    1. 강의실에서는 집에서 올린 수정된 정보를 받아온다.
      업로드중..
profile
Dev.Vinch

0개의 댓글