티스토리 뷰
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 파일 무시
'github' 카테고리의 다른 글
[git][vim]리눅스 환경에서 merge conflict 해결하기 (0) | 2023.04.23 |
---|---|
[git]리눅스 환경에서 git저장소에 소스코드 추가하기 (0) | 2023.04.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DART
- 사토시 나카모토
- Docker
- OSI 7계층
- 디폴트값
- GETX
- git cli
- 매크로함수 장점
- 범위지정연산자
- 프론트엔드
- 플러터
- 빌드과정
- Linux
- 깃허브
- CIDR
- 슈퍼넷팅
- merge conflict
- 절차지향언어
- 매크로함수 소괄호
- vim
- C
- docker cli
- 리눅스
- 매크로 상수
- c++
- github
- 비토코인
- 매크로함수 단점
- namespace 중복
- 이중 지출
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함