Git 명령어 살펴보기

LikeChoonsik's·2022년 1월 26일
0

Git

목록 보기
2/4
post-thumbnail

init

프로젝트를 시작하고 소스 코드를 git으로 관리하고자 한다면 저장소를 초기화해야 합니다. 그러기 위해 쓰는 것이 git init입니다.
이렇게 저장소를 초기화하면 .git이라는 폴더가 숨김상태로 생깁니다.
이후 보통 .gitignore 생성

status

현재 저장소 상태 확인

.gitignore

git 관리에서 특정 파일/폴더를 배제해야 할 경우

우선 git에 포함할 필요가 없는 것/포함하지 말아야 할 것 있다.

git에 포함할 필요가 없는 것(자동으로 생성 또는 다운로드 되는 파일들)
git에 포함하지 말아야 할 것(보안상 민감한 정보 등)

이러한 것들을 관리하기 위해 사용되는 것이 .gitignore입니다
배제해야할 파일이 있다면 .gitignore 에 입력, git status 등으로 확인 가능합니다

.gitignore관리법

link

.gitignore 작성 형식

일단 #을 사용해서 주석처리 가능
#모든 file.c
file.c

#최상위 폴더의 file.c(/로 최상위로 가는거)
/file.c

#모든 .c 확장자 파일
*.c ex) .css .html 등

#.c 확장자지만 무시하지 않을 파일
!not_ignore_this.c

#logs란 이름의 파일 또는 폴더와 내용
logs

#logs란 이름의 폴더와 그 내용들(/가 폴더를 나타냄)
logs/

#logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c

#logs 폴더 바로 안, 또는 그안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log

add

작성한 파일을 저장소에 추가하기
git add .(.은 모든파일) 혹은 특정파일만 추가 가능합니다

commit

현재 작업 내용 git에 올릴 메모지 같은걸 만드는 느낌? 메모지에 제목이나 내용도 쓸 수 있습니다

git commit

git commit만 입력하면 VI입력모드로 진입가능(VI모드 : 마우스 없이 코딩하는 환경? 옛날에 사용하던..?)

VI입력모드시
-입력시작 : I
-입력종료 : esc
-저장 없이 종료 : :q
-저장 없이 강제 종료: :q!
-저장하고 종료 :wq
ex)git commit 입력 -> i(입력) -> First Commit 입력 -> esc(입력종료) -> :wq(저장하고 종료)

git commit -m "커밋내용"

commit 에 이름 붙여서 저장하기

git commit -am "내용"

add 와 commit 을 한번에 진행시켜주는 명렁어, but 새로 추가된 파일이 없을 때만 가능합니다

좋은 커밋 작성법

Link 추가하기

reset, revert

과거 작업물로 돌아가는 명령어
reset은 과거 작업내용으로 돌아가며 현재 내용 삭제합니다
revert는 과거 작업내용으로 돌아가며 수정되어왔던 내용들 역 수정합니다
git log로 작업내역 확인 후 commit 옆 숫자 등으로 복잡하게 쓰여진 코드(해시)를 이용하여 돌아갑니다
git으로 이런 작업내역 등을 보거나 할 땐 sourcetree가 편합니다

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

입력 시 그 커밋 저장했던 작업상태로 이동

git reset --hard

입력 시 reset을 하기전 시점으로 복원
복원 후 git log나 git status로 상태 확인 해보는걸 추천합니다

git revert (돌아갈 커밋 해시)

rm

깃에서 어떤 파일을 삭제할 때 사용합니다

branch

가지치기, 다른차원 개념
보통 메인 프로젝트 파일은 그대로 두고 그와 똑같은 파일을 다른 차원으로 가져와 작업 한 후 합치는 방식으로 프로젝트 진행합니다
git log --all 로 전체 브랜치 내역 편하게 보기 가능, sourcetree가 보기에 더 편하기에 추천합니다

git branch

현재 로컬의 브랜치 목록 확인

git branch -all or git branch -a

내 컴퓨터 뿐만아니라 원격 브랜치 목록 확인

git branch newbranch

newbranch라는 브랜치 생성

git switch newbranch or git checkout newbranch

newbranch라는 브랜치로 이동
checkout을 주로 썼으나 checkout 용도가 다양해서 git2.23버전 이상부턴 switch 추천합니다

git switch -c newbranch

newbranch 생성과 동시에 이동하기

git branch -d newbranch

newbranch 삭제, 적용되지 않을 경우 -D(대문자) 옵션으로 강제 삭제 가능

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

브랜치 이름 바꾸기

git branch -M 이름

브랜치의 마스터이름을 이름으로 변경

브랜치 간 충돌 해결

보러가기

merge

병합, branch를 합치는 행동을 할 때 사용합니다
기존 branch는 그대로 놔두고 끝에만 모아서 병합하기에 잔가지들이 많이 남습니다
즉, 브랜치 사용 내역을 남겨둘 수 있습니다
merge는 reset으로 되돌리기 가능합니다(merge도 하나의 커밋이기 때문에)

git merge newbranch

브런치 합치기
master 브런치에 접속 후 git merge newbranch를 하면 병합됩니다

git merge --abort

merge 중단하기
보통 브랜치 합치다 충돌날 경우 사용합니다

rebase

옮겨 붙이기, branch를 맨 마지막으로 옮겨 붙일 때 사용합니다
merge와는 다르게 기존 branch의 흔적을 남기지 않고 깔끔하게 한줄로 정렬 가능합니다
즉, 히스토리를 깔끔하게 유지 가능 but 협업에선 충돌문제로 추천하지 않습니다

git rebase main

merge와는 반대로 맨뒤로 옮겨줄 branch에 접속 후 git rebase main 입력으로 합쳐줍니다

git rebase --abort

rebase 중단하기
보통 브랜치 합치다 충돌날 경우 사용합니다

git rebase --countinue

rebase 진행하기
보통 브랜치 합치다 충돌날 경우 작업을 계속 진행하겠다 할 때 사용합니다

remote

프로젝트의 리모트 저장소를 관리하는 명령어

git remote -v

현재 사용중인 리모트 저장소 확인

git remote add origin (원격저장소주소)

로컬의 git 저장소에 원격 저장소로의 연결을 추가하기 위해 사용

clone

github 레파지토리에 있는 내용들을 내 컴퓨터로 복사하는 것

git clone 주소

github 레파지토리에 있는 내용들을 내 컴퓨터로 복사하는 것
파일을 받아올 폴더에서 우클릭 후 git bash를 실행합니다
그 후 git clone https://asdfasdfasdfasdf~(주소입니다) 입력시 그 폴더에 받아온 내용들이 저장됩니다

push

github에 업로드 하는 명령어, 원격으로 커밋 밀어올리기

git push origin master

마스터 브랜치로 업로드
위 push와 origin 사이에 다양한 명령어가 있습니다
대표적으로 -u 를 사용시 현재 브랜치와 명시된 원격 브랜치를 기본 연결해주는 명령어입니다
즉 git push -u origin master를 사용한 후 에는 git push만 입력해주더라도 git push origin master과 같은 명령을 수행하게 됩니다

git push --force

강제로 push하는 방법
로컬의 내용 전으로 reset해준 후 push 하는 행동입니다
즉, 로컬과 다른 내용들 커밋까지도 지워버리기에 협업시에는 사전 이야기가 없을 경우 사용을 추천하지 않습니다

pull

github로부터 작업된 내용들을 내 컴퓨터로 다운 받는 것

fetch

원격의 변경사항을 확인하는 명령어

git fetch

원격의 변경사항을 확인

profile
춘식이는 너무 귀엽습니다.

0개의 댓글