기록
  • 1113 -git/sourcetree사용방법
    2023년 11월 13일 09시 58분 28초에 업로드 된 글입니다.
    작성자: 삶은고구마

     

    1. Git - Downloading Package (git-scm.com)

     

    Git - Downloading Package

    Download for Windows Click here to download the latest (2.42.0) 32-bit version of Git for Windows. This is the most recent maintained build. It was released 2 months ago, on 2023-08-30. Other Git for Windows downloads Standalone Installer 32-bit Git for Wi

    git-scm.com

    setup 버전으로 다운로드

     

    2. Sourcetree | Free Git GUI for Mac and Windows (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 Git client for Windows and Mac.

    www.sourcetreeapp.com

     

     

     

    git 설치후 (설치시 설정은 모두 기본으로..)

    git을 입력하면 명령어들을 볼 수 있다.

     

    소스트리 설치 (마지막에 ssh 불러오기는 아니오. 로 선택) 

    mercurial 체크 해제, 고급옵션 하나 체크

     

     

    설정 완료

     

     

    git  : 내 작업물 백업.

    github : 백업 저장소.(모음)


    이클립스로 새 프로젝트 생성 hello- git ->local repository (로컬 저장소)

    .git 확장파일은 꼭 지우지 말 것..

    version commit 시 필요한 것

    1.message(제목,바디)

    2.등록된 author.name / author.email 

    생성 클릭 후 팝업 창에서 예 선택

     

     

    1206 https로 주소 복사
    1206 해당 저장소-설정에서 깃헙저장주소도 추가한다.

     

     

    git 확장자 폴더가 생성됨.(로컬 저장소가 됨)

     

    해당 프로젝트 하위에 .gitignore 확인 . 없다면 새파일로 생성 할 것.

     

    .gitignore에는 변경내역을 관리하지 않을 파일 목록 작성

    -ignore를 만들기 편한 사이트

    https://www.toptal.com/developers/gitignore/

     

    gitignore.io

    Create useful .gitignore files for your project

    www.toptal.com

     

     

    생성된 페이지의 소스를 복사하여 .gitignore 파일에 붙여넣기. (작성된 /bin/ 지워도됨)

    소스코드가 변경될때마다 자동으로 감지됨

     

    이전버전과 비교해 어떤 것이 수정/추가되었나 이렇게 보인다.

     

     

    새 브랜치를 추가하면 브랜치마다 같은 프로젝트도 다르게 관리할 수 있다.

     

    1.새 브랜치 생성 애니멀이라는 브랜치를 만든다.

     

    2.애니멀 브랜치가 생성 된 것을 확인.

     

     

     

    3.애니멀을 선택 한 후 

     

     

     

     

     

     

    중심이되는 건 master

    나머지는 branch

    merge방식엔 두가지가 있다.

    1.fast - forward merge 

    :지금 생성한 animal과 master를 병합하는 작업(animal을 master에 병합하는거임.)

     master 입장에서는 앞으로 감기하는 것.(master에서 파생된 animal을 다시 master랑 합치는거임)

     

    2.true merge(3-way merge) ->충돌가능성 있음

     

     

    1번의 방식으로 병합하기

     

    1.master를 선택 후 상단의 병합 선택. 병합할 브랜치(예제는 animal) 선택.

     

    2.아까는 별개였던 git들이 하나로 병합됨(merge)

     

     

    3.이클립스도 돌아오면 병합전의 master는 main클래스만 있었는데,

    브랜치인 animal과 병합되면서 해당 브랜치에서 작업했던 animal 패키지까지 포함하게 되었다.

     

     

    tip:만약 이클립스에서 해당 패키지가 workspace master로 나오는 경우

    나같은 경우엔 올바르게 설정되었지만 간혹 이상하게 설정되는 경우가 있다고 한다.

    window - show view - other - git repositories 추가.

    git 로컬 저장소로 원하는 폴더(다루는 프로젝트 폴더) 선택 후 apply 하면 완료.

     

     

    ex)animal에서 작업 -아무 동물 class 생성 후 master에 병합하기

    branch-animal 선택 후, bird class 추가, main에서 bird - fly 메소드 호출.

    다시 master선택 후 병합.

     

     

    ex)새 브런치 추가

    bugfix/upper

     

    --

    ex)고의 충돌현상 발생시키기

     

    1.master 와 animal 각각 main의 16번 라인에 sysout 작성.

     

    2.master로 animal 병합 시도

     

     

    3.충돌 발생 (수정된 라인이 동일해서.. master의 수정된 코드로 병합할 건지, animal의 수정된 코드로 병합할 건지 묻는거)

     

     

    4.오류가 나는 것을 확인.

    나는 두 sysout을 그대로 사용하기로 함. 

     

    5. 다시 병합.

     

     

    reset (지양) / revert 

     

    reset:되돌아가면 앞의 내용은 삭제가 됨 (말 그대로 과거로 되돌아감)

     

     

    revert 문제가 있어 취소된 내용이 새 버전으로 생김

     

     

    revert로 cat 클래스/jump메소드 삭제

    master로 캣 점프를 추가했던 구간에서 커밋 되돌리기 실행.

    이후 이클립스에서 캣 점프 메소드 삭제 후, 파일상태에서 스테이지로 올린 후 history에서 확인해본다.

     

     

     

     

     

     

     

    소스트리와 깃헙 연동하기

     

    원격 설정

     

     

    push(upload)

     

     

    성공적으로 업로드 되었다면 내 github에서도 확인가능함.

     

    그리고 다시 master로 main test메소드에 아무 코드 1줄 추가. 

    push할 것이 하나 있다고 자동으로 잘 알려줌

     

    push 후

     

    github에서 확인

     

     

     

    로컬/리모트

     

     

     

    깃헙사이트에서 직접 main.java 수정 

    test메소드 위에 abc 메소드 하나만 추가.

    1.fatch(리모트 마스터로 다운로드)

     

    2.

     

    3.master 선택 후 병합.

     

     

     

    4.이클립스에서 확인하면 abc메소드 추가되어있다.

     

    5.위의 fetch+merge 를 통합한 것이 pull

     

    6.github에서 abc메소드 밑에 def 메소드 추가.

    소스트리에서 pull 실행

     

    7.이클립스 확인하면 def 메소드가 추가되어있다..

     


    새 환경에서 github에 있는 프로젝트 import 하는 방법

     

    저장소 루트 지정

    원하는 로컬 루트 지정

    클론

    하면 지금까지 저장된 최신 데이터가 그대로 복사된다..

     

     

    선 pull

    후 push

    원격 저장소에서 일단 pull(가져오기) 

    작업 후에 push(저장하기)

     


     

    '공부' 카테고리의 다른 글

    반복문 종류  (0) 2024.01.29
    javascript - this  (0) 2023.11.29
    1019(24일차) - sql 3일  (0) 2023.10.19
    oracle sql developer 오류  (0) 2023.10.18
    1018(23일차) - sql2일  (0) 2023.10.18
    댓글