티스토리 뷰

github

Git 명령어 모음

ak47001 2024. 12. 2. 21:09

github 사용자 계정 등록

git config --system(/etc/gitconfig 파일) 시스템의 모든 사용자와 모든 저장소에 적용되는 설정
git config --global(~/.gitconfig, ~/.config/git/config 파일) 특정 사용자에게만 적용되는 설정, 특정 사용자의 모든 저장소 설정에 적용
git config --local(.git/config 파일) 이 파일은 Git 디렉토리에 있고 특정 저장소에만 적용됨
git config --global credential.helper cache git 인증 캐시 활성화

 

 

 

Remote 관련 명령어

git remote add <원격 저장소명> <깃허브 주소> 원격 저장소 추가
git remote --verbose 연결된 원격 저장소 확인
git remote rename <현재 원격저장소 별칭> <바꿀 원격저장소 별칭> 원격 저장소 별칭 변경
git remote remove <원격 저장소명> 원격 저장소 삭제

 

 

Branch 관련 명령어

git branch 현재 브랜치 상태 확인
git branch <추가할 브랜치명> 브랜치 추가
git branch --b <추가할 브랜치명> 브랜치 만들고 이동까지
git branch --m <현재 브랜치명> <새로운 브랜치명> 브랜치명 수정
git branch --D <삭제할 브랜치명> 브랜치 삭제
git branch -u <리모트명/리모트 브랜치명> 현재 브랜치를 리모트 브랜치와 연결
git branch -vv 로컬 브랜치와 원격 브랜치 관계 확인
git checkout <이동할 브랜치명> 브랜치 이동
git merge <병합할 브래치명> 현재 브랜치에 있는 코드를 병합할 브랜치에 있는 코드와 합친다. 이때 같은 부분을 수정했다면 merge conflict가 발생할 수 있다. 이는 간단하게 소스파일 자체에 어떤 부분에서 경합이 일어났는지 표시해놓기에 어떤 식으로 코드를 수정할지 선택한다.
git diff <unstaged 파일> unstaged 파일(워킹 디렉토리에서 수정만한 파일)에서 어떤 변경 사항이 있는지 확인하는 명령어

 

Commit log 조회하기

git log commit histroy 조회하기
git log --p 각 커밋의 diff결과를 보여준다.
git log --n 최근 n 개의 결과만 보여준다.
git log --stat 어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지, 또 얼마나 많은 라인을 추가하거나 삭제했는지를 보여준다. 요약정보는 맨마직에 확인가능
git log --pretty --pretty = oneline 각 커밋을 한 라인으로 출력
--pretty = short
--pretty = full
--pretty = fuller
--pretty = format:“%h - %an, %ar : %s” // 나만의 출력 결과 생성


저자는 원래 작업을 수행한 원작자를 말하고 커밋터는 마지막으로 이 작업을 적용한 사람을 말하낟.
git log --graph 브랜치와 머지 히스토리를 보여주는 아스키 그래프를 출력
git log --since ex) git log since=2.weeks
git log since=“2024-7-9”
해당 날짜 이후의 로그 검색
git log --until 명시한 날짜 이전의 로그 검색
git log --author <저자명> 저자 이름을 검색하여 커밋 확인 가능
git log --committer <커밋터명> 커미터의 이름을 검색하여 커밋 확인
git log --grep <키워드> 커밋 메시지의 키워드만 확인가능
git log --S <특정 텍스트> 코드에서 추가되거나 제거된 내용 중에 특정 텍스트가 포함되어 있는지를 검색하는 명령어
git log --no-merges 머지 커밋 표시하지 않기

 

Staging Area, local Woking Directory 상태 관리

git commit --amend 제일 최근 커밋 내용을 변경 및 수정
, 마지막 커밋 작업에서 아주 살짝 뭔가 빠뜨린 것을 넣거나 변경하는 것을 새 커밋으로 분리하지 않고 하나의 커밋에서 처리할 수 있도록 해주는 명령어
git reset HEAD <file> staging area에 올라가 있는 파일을 unstaged상태로 변경
git reset --soft <commit id> 해당 커밋에 대한 변경사항만 staging area 두기(제거 X)
git reset --hard <commit id> 예전에 반영한 커밋 ID로 되돌아가고, 그 이후에 반영한 commit들은 모두 제거하는 방법
git revert <commit id> 해당 커밋의 변경사항을 제외한 새로운 커밋을 등록하고 해당 커밋은 삭제
git checkout -- <file> 아직 staging area에 올리지는 않았지만 파일을 수정해서 Modified 상태일 때 수정 내용을 전부 되돌리는 명령어
git rm <스테이지에서 삭제할 파일> 깃에서 파일을 제거하기 위해 git rm 명령으로 Tracked 상태의 파일을 삭제한 후에 커밋을 해야한다. 이 명령어를 통해 실제 파일 삭제된다.
git rm으로 삭제한 파일은 Staged 상태가 된다.
git rm f <파일명> staging area에 있는 파일 강제 삭제
git restore <파일명> unstaged 상태의 변경 파일을 원상복구
git restore staged <파일명> git add로 스테이지에 올라온 파일을 unstaged 상태(working directroy 상태)로 되돌림
git add --patch <스테이지에 올릴 파일> 수정된 사항만 스테이지에 올리기
git commit --v 현재 커밋할 수 있는 파일들과 변경 이력 확인
git commit --a staging area에 올려야되는 과정을 생략하는 명령어

.gitignore 가이드 라인

.ignore 파일 생성
- 아무것도 없는 라인이나, #로 시작하는 라인은 무시한다.
- 표준 Glob 패턴을 사용한다. 이는 프로젝트 전체에 적용
- 슬래시/로 시작하면 하위 디렉토리에 적용되지 않는다.
- 디랙토리는 슬래시/를 끝에 사용한느 것으로 표현한다.
- 느낌표!로 시작하는 패턴의 파일은 무시하지 않는다.

Glob 패턴 설명
- *는 문자가 하나도 없거나 하나 이상을 의미
- 중괄호 안에 있는 문자 중 하나를 의미
- ? 는 문자 하나를 의미
- [0-9]처럼 중괄호 안에 –를 사용하면 그 캐릭터 사이에 있는 문자를 의미
- **를 사용해 디렉토리 안의 디렉토리까지 지정 가능
a/**/z = a/z or a/b/z or a/b/c/z 디렉토리에 사용가능

사용 예시
*.a
!lib.a
# 확장자가 .a인 파일 중 lib.a 파일만 제외하고 모두 무시

/TODO
# 현재 디렉토리에 있는 TODO파일만 무시

build/ 
# build 디렉토리에 있는 모든 파일 무시
doc/*.txt
# 오직 doc 디렉토리에 있는 .txt 파일 무시

doc/**/*.pdf
# doc 아래의 모든 pdf 파일 무시
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함