본문 바로가기
프로젝트 개발 관련 공부/Git, Github

[Git] gitbash에서 자주 사용하는 git 명령어

by 이제ise이제 2023. 10. 8.

Last Update) 2023.10.08

(내가) 자주 쓰는 git 명령어 정리

미니플젝 팀원들에게 깃 속성 강의로 알려줄겸 정리!
참고자료에 따르면 명령어 제일 앞에 $가 있지만,
gitbash에서 $를 자동 생성하므로 본문에서는 이를 무시하고 작성함.

EX) $ git add test.txt → git add test.txt

 

목차


 

 

참고자료

  • Git 개념 공부

1.1 시작하기 - 버전 관리란?

 

Git - 버전 관리란?

1.1 시작하기 - 버전 관리란? 이 장에서 설명하는 것은 Git을 처음 접하는 사람에게 필요한 내용이다. 먼저 버전 관리 도구에 대한 이해와 Git을 설치하는 방법을 설명하고 마지막으로 Git 서버를 설

git-scm.com

 

 

  • 터미널 관련

Git ① git bash 기본 명령어

터미널 기본 명령어

 


 

git 최초 설정

1.6 시작하기 - Git 최초 설정

# 설정 전체 내역 확인하기
## local
git config --list
## global
git config --global --list

# 사용자 이름만 보기
## local
git config user.name
### (==) git config --get user.name
## global
git config --global user.name
### (==) git config --get --glabal user.name

# 사용자 이메일만 보기
## local
git config user.email
### (==) git config --get user.email
## global
git config --global user.email
### (==) git config --get --glabal user.email
cf) local(로) vs global(전역) 차이

 

1.6 시작하기 - Git 최초 설정 (https://git-scm.com)

 


 

커맨드 창에서 자주 사용하는 명령어 보기

git

 

명령어 git만 입력하면 출력되는 내용

 



 

Git의 기초

# 요약
$ git init
$ git clone URL주소
$ git status
$ git add .
$ git commit -m "메시지"

파일 상태 확인 : 변경 사항이 있는지, 커밋이 있는지

# 전체 보기
git status


# 짧게 보기
git status -s

 


 

Git의 기초 로컬 & 원격

로컬저장소에 원격저장소 가져오기

git clone 원격저장소 주소

### ex) git clone https://웹깃저장소사이트주소/아이디/레포지토리이름.git

 

원격 저장소로 업로드

git push -u origin 브랜치_이름
### ex) git push -u origin main

### cf)
git push origin 브랜치_이름
### ex) git push origin main

cf)

Q. git push -u origin 브랜치이름 vs git push origin 브랜치이름

A. git pull의 과정/결과가 달라짐

출처:What exactly does the "u" do? "git push -u origin master" vs "git push origin master"

 

What exactly does the "u" do? "git push -u origin master" vs "git push origin master"

I'm apparently terrible at using git, despite my best attempts to understand it. From kernel.org for git push: -u --set-upstream For every branch that is up to date or successfully p...

stackoverflow.com

-u의 의미 == --set-upstream 
git pull만 하면(branch를 지정하지 않고) branch.<name>.merge만 함

(추적의 차이)

자세한 건 블로그 글 새로 팔 예정

 

연결된 원격 저장소 URL 확인하기

# 원격 저장소(=origin) url 확인하기)
git remote -v

 


변경 사항 저장

# 변경사항 전체 저장
git add .


# 변경사항 일부만 저장
git add 변경된_파일_이름
### ex) git add test.txt

 

add한 변경 사항 취소

# add한 변경사항 전체 취소
git reset


# add한 변경사항 일부만 취소
git reset 취소할_파일_이름
### ex) git reset test.txt

 


 

커밋

커밋 메시지 작성

git commit -m "커밋 메시지"

git commit -m "[컨벤션] 커밋 제목
커밋 본문 메시지"

### ex) git commit -m "[Add] 캐릭터 이동
### 방향키 상하좌우 이동"

### ex) git commit -m "[Update] 캐릭터 이동 input 방식 추가
### wsad로 상하좌우 이동 가능하도록 추가"

커밋 내역 조회

# 전체 조회
git log

커밋 취소 (되될리기)

# 바로 직전 커밋의 메시지 수정하기
git commit --amed

### 1. 이전 메시지가 나옴
### i를 눌러 INSERT를 활성화(이제 메시지를 수정할 수 있음)
### 파일 수정이 끝나면 ESC(수정모드 끝내기)
### :wq (저장하고 나가기)

### cf) :q (그냥 나가기. 만약 수정 사항이 있으면 변경 사항이 있다면서 못나가게 함)

 


브랜치

git branch 명령어 index

git checkout 명령어 index

브랜치 조회

# 현재 위치한 브랜치 조회
git branch

# 전환 가능한 모든 브랜치 조회
git branch -a
## -a == --all

# 원격의 모든 브랜치 조회
git branch -r
## -r == --remotes

 

브랜치 전환과 생성

# 로컬에서 새 브랜치 생성
git branch 새_브랜치_이름
### ex) git branch newFeat

# 브랜치 전환
git checkout 브랜치_이름
### ex) git checkout newFeat


## 혹은


# 새 브랜치 생성 + 전환 한번에
git checkout -b 새_브랜치_이름
### ex) git checkout -b newFeat

 

브랜치 삭제

# 브랜치 삭제
git branch -d 삭제할_브랜치_이름

 

브랜치 이름 바꾸기

# 현재 브랜치 이름 바꾸기
git branch -m 바꿀_브랜치_이름

 


 

그 외

폴더(디렉토리) 만들기

mkdir 디렉토리_이름
### ex) mkdir TestFolder

폴더(디렉토리) 이동

#폴더 구조 상태
desktop/
|- test
|	|-test2

### 현재 위치 : test일 때


# 하위 디렉토리로 이동
cd test2
### 현재 위치 : test2

# 상위 디렉토리로 이동
cd ..
### 현재 위치 : test

# 최상위 디렉토리로 이동
cd
### 현재 위치 : ~
### (gitbash에는 ~로 표시)
### ~ 은 어디일까 : 
### window os 기준 "내 PC > 로컬디스크(C:) > 사용자 > 사용자이름" 의 사용자이름 폴더로 이동

현재 폴더(디렉토리) 안의 모든 파일명 조회

ls

폴더(디렉토리) 이동

echo "내용" > 파일_이름.확장자
### ex) echo "리드미 파일 안의 내용입니다." > README.md

### 혹은

touch 파일_이름.확장자
### touch test.txt

 


특정 상황

default 이름 바꾸기 : 주로 master에서 main으로 바꿈

상황)
1. local에 git inti (defualt branch = master)
2. 1번의 폴더에 원격 repository를 clone (defualt branch = master)
3. 원격 repository(github)의 default branch = main일 때
# 로컬의 브랜치 이름 바꾸기
git branch -m master main

# 원격 추적 분기 업데이트
git fetch origin

# main브랜치가 origin/main을 추적하도록 설정
git branch -u origin/main main
### <branchname>(main)의 추적 정보를 설정하여
### <upstream>(origin/main)이 <branchname>의 업스트림 분기로 간주되함
### (main이 origin/main에서 분기됐다는 의미)
### <branchname>이 지정되지 않으면 기본값은 현재 분기