[GIT] 코드

Soo·2023년 10월 3일
0
post-thumbnail

✏️ GIT 기초 코드

💡 기초 코드

아래 코드는 git의 직접적인 명령코드는 아니나 알아두면 유용

* [local] 경로 이동하기

% cd 폴더명

* [local] 폴더 만들기

% mkdir 폴더명

* [local] 빈 파일 만들기

% touch 파일명.확장자

* CAT : 파일 내용 확인하기

% cat 파일명.확장자

* CAT : 파일 생성하고 내부 파일에 내용 입력하기 (파일이 있으면 덮어씀)

% cat > 파일명.확장자
명령어 #ex-파이썬이라면 print('hello,world')
control + D #for Mac / 위 내용 저장됨

* CAT : 기존 파일에 덧붙여쓰기

% cat >> 파일명.확장자
명령어 #ex-파이썬이라면 print('hello,world')
control + D #for Mac / 위 내용 저장됨

💡 Local & Remote Repository

* [local] 폴더 초기화

  • 해당 폴더를 git이 관리하기 시작하는 초기화 명령
  • 숨은 폴더로 git 폴더 생성됨
  • 별도 브랜치를 생성하지 않는 이상 main 혹은 master 브랜치로 이름 지정됨
% git init 

* ⭐️ [local] 파일을 index(stage)에 추가

% git add 파일명.확장자

* ⭐️ [local] 파일을 index(stage)에 추가된 사항을 head에 반영(확정)

cat등으로 파일 수정후 아래 코드 입력해서 업데이트 해주면 git graph에 history 업데이트 됨

% git commit -m '메시지 입력' 파일명.확장자

github에서 repository 만들기

* [remote] remote repository 등록

% git remote add origin https://계정이름:토큰@github repository 주소

* [remote] remote repository 연결 확인

% git remote -v
현재까지 : 연결은 됐어도 github 사이트상에선 local 자료들은 보이지 않는 상태

* [remote] push (local 자료를 remote repository로)

% git push origin [main or master...]

* [remote] pull (remote repository를 local로)

% git pull origin [main or master...]

💡 Git Clone

  • github에서 repository를 먼저 생성후 local pull까지 바로 진행
  • git init 과정 불필요 -> 바로 git add 명령어부터 실행 가능
  • github의 폴더명과 동일한 local 폴더 자동으로 생성
  • github 사이트 상의 폴더중 폴더명 맨 앞에 .이 있는건 local에서 숨은 폴더
% git clone https://계정이름:토큰@github repository 주소

💡 Branch

  • 브랜치를 생성해도 local 상에선 보이진 않지만, 그 브랜치 안에서 파일 생성 등 가능 -> commit , push 등 가능 (그럼 main or master 브랜치가 아닌 그 브랜치로 히스토리가 누적됨)
  • 동일한 파일이라도 브랜치마다 내용이 다를 수 있음
    (하단 '💡 Git diff'로 상세 내용 확인)
    • main hello.py에는 print('hello, cat')이 등록
    • git checkout dev로 dev 브랜치 이동 -> cat > hello.py | print('hello, dog')으로 수정 -> cat hello.py로 확인하면 print('hello, dog') 나옴

* branch 조회

local branch조회

% git branch

remote branch 조회

% git branch -r

local & remote branch 조회

% git branch -a

* branch 생성

생성시 동일한 브랜치명 사용 X (동일한 브랜치명으로 생성이 불가함)

% git branch 브랜치명

* branch 이동

% git checkout 브랜치명

* branch 생성 후 바로 이동

생성시 동일한 브랜치명 사용 X (동일한 브랜치명으로 생성이 불가함)

% git checkout -b 브랜치명

* branch push (local 자료를 remote repository로)

% git push origin 브랜치명

* branch 삭제하기

local 삭제 (해당 브랜치에 있을 땐 삭제 안됨, 다른 브랜치로 이동 후 삭제 / github remote repository에는 삭제 안됨)

% git branch -d 브랜치명

branch remote 삭제

% git push origin -delete 브랜치명

💡 Git Log

  • 현재 위치한 브랜치에서 변경 이력 확인 가능 (git graph의 텍스트 버전)
  • 가장 상단에 최신 업데이트 내용 기록되어 있음
% git log

💡 Git Diff

  • 버전간의 차이를 조회할 수 있는 명령

* branch간 비교

vim으로 조회

% git diff 브랜치명 브랜치명

vscode로 조회 : 사전에 editor에 vscode로 설정 필요

% git difftool 브랜치명 브랜치명

y 누르기

* Commit간 비교

% git diff commithash commithash
or
% git difftool commithash commithash

commithash 확인하는 방법 : % git log

* 마지막 commit과 이전 commit 비교

% git diff HEAD HEAD^
or
% git difftool HEAD HEAD^

* 마지막 commit과 현재 수정사항

% git diff HEAD 
or
% git difftool HEAD 

* Local & remote 간 비교

% git diff 브랜치명 origin/브랜치명
or
% git diff 브랜치명 origin/브랜치명

💡 Git Merge

사전에 editor에 설정 필요
모브랜치로 이동 후(% git checkout 브랜치명) 아래 코드 입력 : 모브랜치에 자브랜치를 merge 시킴 (자브랜치 내용으로 수정됨)
모,자는 혼자 이해하기 쉽게 하기 위해서 붙힌 것

% git merge 자브랜치명

💡 Git Merge (Merge Conflict)

* git mergetool

(VS코드로 mergetool 셋팅이 되어 있다면)
% git mergetool

VS코드가 연결됨 -> 오류 지점 찾기

* 오류 수정

  • Diff 를 <<<<, ====, >>>> 로 표시
  • 맞는 코드를 선택하여 수정하고 저장.(Diff 표시 부분도 삭제)
    • 협업자가 많을 경우, 협업자와 상의 후 진행하기

* Conflict 해제

  • 위 상태는 파일만 수정된 상태
  • 아래의 해제 단계 필요
#인덱스(stage)추가
% git add 파일명.확장자

#head 연결 (메시지 적을 필요 없이 아래 코드만 입력해도 됨)
% git commit

창이 새로 뜨면 command + s하고 닫기
  • cat으로 확인하면 merge 된 것 확인 가능

💡 Git Tag

특정 버전 (commit)에 tag를 달아놓을 필요가 있을 때 사용 (ex-버전 릴리즈)

* 마지막 버전에 태깅

% git tag 태그이름

예시>>
% git tag v0.3

* 특정 버전에 태깅

commithash 확인하는 방법 : % git log

% git tag 태그이름 commithash

예시>>
% git tag v0.2 commithash_blahblah

* Tag를 Remote Repository로 Push

% git push origin 태그이름

* Tag 목록 확인

% git tag

* Tag 상세정보

% git show 태그이름

* Tag 삭제 (Local)

% git tag --delete 태그이름

* Tag 삭제 (Remote)

% git push --delete origin 태그이름

✏️ 출처

제로베이스 데이터취업스쿨 강의

profile
데린이인데요 ໒꒰ྀ ˶ • ༝ •˶ ꒱ྀིა (잘못 된 부분은 너그러이 알려주세요.)

0개의 댓글

관련 채용 정보