Last Update) 2023.10.08
(내가) 자주 쓰는 git 명령어 정리
미니플젝 팀원들에게 깃 속성 강의로 알려줄겸 정리!
참고자료에 따르면 명령어 제일 앞에 $가 있지만,
gitbash에서 $를 자동 생성하므로 본문에서는 이를 무시하고 작성함.
EX) $ git add test.txt → git add test.txt
목차
참고자료
- Git 개념 공부
Git - 버전 관리란?
1.1 시작하기 - 버전 관리란? 이 장에서 설명하는 것은 Git을 처음 접하는 사람에게 필요한 내용이다. 먼저 버전 관리 도구에 대한 이해와 Git을 설치하는 방법을 설명하고 마지막으로 Git 서버를 설
git-scm.com
- 터미널 관련
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(전역) 차이
커맨드 창에서 자주 사용하는 명령어 보기
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
# 전환 가능한 모든 브랜치 조회
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>이 지정되지 않으면 기본값은 현재 분기
'프로젝트 개발 관련 공부 > Git, Github' 카테고리의 다른 글
fork가 끊긴 repository를 original repository에 Merge하기 (0) | 2024.03.02 |
---|---|
[Github] repository 다른 Organization으로 옮기기 : transfer 사용법 / Import a repository 사용법 (1) | 2023.10.13 |
[Git] Conflict 해결 by Visual Studio Code (1) | 2023.10.12 |