필기노트

Git 기초 명령어 본문

Git

Git 기초 명령어

우퐁코기 2022. 7. 16. 22:53
반응형
목차

1. 프로젝트의 변경사항들을 타임캡슐(버전)에 담기 - add

2. 타임캡슐 묻기 - commit

3. 과거로 돌아가는 두 가지 방법 - reset, revert

4. branch: 분기된 가지(다른차원)

5. 서로 다른 브랜치를 합치는 두 방식 - merge, rebase

6. 브랜치 간 충돌 해결하기 - abort, continue

7. 원격으로 커밋 - push, pull

8. 현재 속한 브랜치의 가장 최신 커밋 - HEAD

9. 도움을 받을 수 있는 기능 - help

1. 프로젝트의 변경사항들을 타임캡슐(버전)에 담기 - add

0) 파일의 삭제와 이동

git rm tigers.yaml

git mv tigers.yaml 

 

1) 변경사항 확인 (Git의 관리에 들어간 적 없는 파일)

git status

 

2) 파일 하나 담기

git add tigers.yaml

 

3) 모든 파일 담기

git add .

 

 


2. 타임캡슐 묻기 - commit

1) git commit -m "FIRST COMMIT"

2) git commit -am "FIRST COMMIT" add와 commit 한꺼번에

2) git log 확인

4) git diff 변경사항 확인



Vi 입력 모드로 진입

작업 Vi 명령어 상세
입력 시작 i 명령어 입력 모드에서 텍스트 입력 모드로 전환
입력 종료 ESC 텍스트 입력 모드에서 명령어 입력 모드로 전환
저장 없이 종료 :q  
저장 없이 강제 종료 :q! 입력한 것이 있을 때 사용
저장하고 종료 :wq 입력한 것이 있을 때 사용
위로 스크롤 k git log등에서 내역이 길 때 사용
아래로 스크롤 j git log등에서 내역이 길 때 사용

 

 


3. 과거로 돌아가는 두 가지 방법 - reset, revert

1) reset: 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.

git reset --hard (돌아갈 커밋 해시)

git reset --hard

뒤에 커밋 해시가 없으면 마지막 커밋을 가리킴

  • --soft: repository에서 staging area로 이동
  • --mixed (default): repository에서 working directory로 이동
  • --hard: 수정사항 완전히 삭제

 

2) revert: 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다.

git revert (되돌릴 커밋 해시)

:wq로 커밋 메시지 저장

커밋해버리지 않고 revert하기

git revert --no-commit (되돌릴 커밋 해시)

원하는 다른 작업을 추가한 다음 함께 커밋

 

 

3) git restore --staged (파일명)

--staged를 빼면 working directory에서도 제거

 

 


4. branch: 분기된 가지(다른차원)

프로젝트를 하나 이상의 모습으로 관리해야 할 때

  • 예) 실배포용, 테스트서버용, 새로운 시도용

여러 작업들이 각각 독립되어 진행될 때

  • 예) 신기능 1, 신기능 2, 코드개선, 긴급수정...
  • 각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합

 

1) 브랜치 생성

git branch add-coach

2) 브랜치 목록 확인

git branch

add-coach 브랜치로 이동

git switch add-coach

3) 브랜치 생성과 동시에 이동하기

git switch -c new-teams

4) 브랜치 삭제하기

git branch -d (삭제할 브랜명)

5) 브랜치 강제 삭제

git branch -D (강제삭제할 브랜치명)

6) 브랜치 이름 바꾸기

git branch -m (기존 브랜치명) (새 브랜치명)

7) 여러 브랜치의 내역 편리하게 보기

git log --all --decorate --oneline --graph

 

 


5. 서로 다른 브랜치를 합치는 두 방식 - merge, rebase

merge : 두 브랜치를 한 커밋에 이어붙입니다.

  • 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식입니다.
  • 다른 형태의 merge에 대해서도 이후 다루게 될 것입니다.

rebase : 브랜치를 다른 브랜치에 이어붙입니다.

  • 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합합니다.
  • 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋습니다.

1) add-coach 브랜치를 main 브랜치로 merge

main 브랜치로 이동

아래의 명령어로 병합

git merge add-coach

:wq로 자동입력된 커밋 메시지 저장하여 마무리

병합된 브랜치는 삭제

git branch -d add-coach

 

2) rebase로 합치기

new-teams 브랜치를 main 브랜치로 rebase

new-teams 브랜치로 이동(merge 때와는 반대!)

아래의 명령어로 병합

git rebase main

main 브랜치로 이동 후 아래 명령어로 new-teams의 시점으로 fast-forward

git merge new-teams

new-teams 브랜치 삭제 -> git branch -d new-teams

 

 


6. 브랜치 간 충돌 해결하기 - abort, continue

브랜치 간 충돌 - 파일의 같은 위치에 다른 내용이 입력된 상황

1) merge 충돌 해결하기

당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단

git merge --abort

해결 가능 시 충돌 부분을 수정한 뒤 git add ., git commit으로 병합 완료

2) rebase 충돌 해결하기

conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생

당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단

git rebase --abort

 

해결 가능 시

충돌 부분을 수정한 뒤 git add .

아래의 명령어로 계속

git rebase --continue

충돌이 모두 해결될 때까지 반복

main에서 git merge conflict-2로 마무리

conflict-1, conflict-2 삭제

 

 


7. 원격으로 커밋 - push, pull

1) 원격으로 커밋 밀어올리기

git push

 

2) 원격으로 커밋 당겨오기

git pull

 

3) push 할 것이 있을 시 pull 하는 두 가지 방법

git pull --no-rebase - merge 방식

git pull --rebase - rebase 방식

push하기

 

4) 로컬의 내역 강제 push해보기

git push --force

 

5) 로컬 브랜치 원격에 push 해보기

git push -u origin from-loacal

로컬과 원격의 브랜치들 확인

git branch --all

 

6) 원격의 브랜치(최신커밋을) 로컬에 받아오기

(1) git fetch

원격의 변경사항 확인

(2) git branch -a

확인

(3) git switch -t origin/from-remote

로컬에 같은 이름의 브랜치를 생성하여 연결하고 switch

 

7) 원격의 브런치 삭제

git push (원격 이름) --delete (원격의 브랜치명)

 

 


8. 현재 속한 브랜치의 가장 최신 커밋 - HEAD

1) ^ 또는 ~: 갯수만큼 이전으로 이동

  • git checkout HEAD^^^, git checkout HEAD~5

2) 커밋 해시를 사용해서도 이동 가능

  • git checkout (커밋해시)

3) git checkout - : (이동을) 한 단계 되돌리기

 

4) 기존 브랜치로 돌아오기

git switch (브랜치명)

 

5) HEAD 사용하여 reset하기

git reset HEAD(원하는 단계) (옵션)

 

 


9. 도움을 받을 수 있는 기능 - help

1) 기본적인 명령어들과 설명

git help

 

2) Git의 모든 명령어들

git help -a

 

3) 해당 명령어의 설명과 옵션 보기

git (명령어) -h

 

4) 해당 명령어의 설명과 옵션 웹사이트에서 보기

git help (명령어) -w

 

 


REFERENCE

 

변화를 타임캡슐에 담아 묻기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

🐰 과거로 돌아가는 두 가지 방법

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

과거로 돌아가기 실습

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

여러 branch 만들어보기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

🐰 branch를 합치는 두 가지 방법

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

branch 합치기 실습

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

충돌 해결하기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

push와 pull

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

원격의 브랜치 다루기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

HEAD

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

Help와 문서 활용하기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

반응형

'Git' 카테고리의 다른 글

GitHub에 블로그 만들기  (0) 2022.08.12
GitHub 시작하기  (0) 2022.08.07
많이 쓰이는 터미널 명령어  (0) 2022.07.17
맥 Git 설치 및 설정  (0) 2022.07.16
Sourcetree 'git status' failed with code -1  (0) 2022.07.14
Comments