만들기
저장소 만들기
git init
리모트 저장소 복제
git clone <URL>
원격 저장소 정보
git remote -v
원격 저장소 연결
git remote add <이름> <URL> : 저장소 이름의 기본값은 origin
원격 저장소 변경
git remote rename <저장소> <저장소>
git remote remove <저장소>
저장소에서 가져오기
git fetch <저장소> : 단순 가져오기
git pull <저장소> : fetch와 merge
'저장
워킹 디렉토리 - 스테이징(Index) - 커밋 - 원격저장소push
스테이징
변경사항 전체 스테이징 추가
git add .
git add *
특정 파일 스테이징 추가
git add <file> <file> <file>
파일 삭제
git rm <파일>
git rm -f <파일>
git rm --cached <파일> : 스테이징에서 삭제하나 파일은 남겨둠
파일 이동(파일명 변경)
git mv <이전파일명> <신규파일명>
커밋
git commit -m "커밋 메시지"
스테이징 + 커밋을 동시에
git commit -a -m "커밋 메시지"
커밋변경
다시 커밋 : 기존 커밋을 덮어쓴다
git commit -m "커밋메시지" --amend
저장소에 저장
git push <저장소> <브랜치>
취소
작업트리 되돌리기
git checkout HEAD <file> : 스테이징에 올리기전의 HEAD 위치로 돌아간다
: git reset --hard HEAD 을 사용해도 동일
스테이징 되돌리기
git reset HEAD <file> : <file>이 없으면 전체 취소
커밋 되돌리기
1개 이전을 나타내는 문자는 '^' 또는 '~' 로 표시. HEAD^ 라면 HEAD 를 하나 이전으로 되돌림
--mixed, --soft, --hard 옵션이 있는데 기본은 --mixed로 동작한다.
작업트리유지 : 커밋과 스테이징은 취소되고 작업트리의 수정된 내용은 유지됨
git reset HEAD^
스테이징은 유지 : 커밋만 취소됨
git reset --soft HEAD^
모두 취소 : 작업트리의 수정된 내용까지 모두 취소
git reset --hard HEAD^
HEAD를 특정개수 만큼 되돌려 해당 갯수만큼의 커밋만 취소
git reset HEAD~2 : HEAD에서 2개 이전으로 되돌림
커밋을 원격 저장소의 마지막 상태로 되돌림
git reset --hard HEAD
되돌린것을 다시 되돌림
git reset --hard ORIG_HEAD
PUSH 되돌림
내용을 되돌린 후 커밋 : reset은 취소, revert 는 이전상태로 수정하는 명령
git revert HEAD
PUSH 취소
git reset HEAD^
git commit -m "커밋 취소 내용을 커밋"
git push origin +master
태그
단순 위치 태깅
git tag <태그>
브랜치처럼 해당 위치의 데이터를 별도로 저장해 태그 구성
git tag -a 태그 -m '메시지'
태그를 저장소로 전송
git push <저장소> <태그>
git push <저장소> --tags
태그삭제
git tag -d <태그>
태그목록
git show-ref --tags
git show-ref --abbrev=5 --tags
태그 해쉬 검색
git show-ref -s 태그
git rev-parse 태그
git log -1 태그 --pretty=%H
git rev-list -1 태그
log 보기
git log --oneline --decorate --tags --no-walk
git log --tags --no-walk --date=iso-local --pretty='%C(auto)%h %cd%d %s'
BRANCH
브랜치목록
git branch
git branch -r
현재 브랜치명
git rev-parse --abbrev-ref HEAD
브랜치 생성, 변경
git branch <브랜치>
git checkout <브랜치>
생성+이동
git checkout -b <브랜치>
브랜치 삭제
git branch -d <브랜치>
브랜치 머지 순서
merge 명령은 HEAD 위치에 합침.
master 브랜치로 머지하는 경우 이동한 뒤 머지 및 삭제
git checkout master
git merge <브랜치>
git branch -d <브랜치>
머지툴 실행
git mergetool
비교툴 실행
git difftool <브랜치> <파일>
CONFIG
설정조회
git config --list
git config --global --list
사용자명, 이메일
저장소별 설정
git config user.name "name"
git config user.email "e-mail"
전역설정
git config --global user.name "name"
git config --global user.email "e-mail"
비교, 머지툴 추가
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "\"C:/DiffMergePath/sgdm.exe\" --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "\"C:/DiffMergePath/sgdm.exe\" \"$LOCAL\" \"$REMOTE\""
config 파일
프로젝트별 설정 파일 위치
각프로젝트 폴더\.git\config
전역 설정 파일 위치
C:\Users\사용자\.gitconfig
[merge]
tool = diffmerge
[mergetool]
keepBackup = false
[mergetool "diffmerge"]
cmd = \"C:/DiffMergePath/sgdm.exe\" --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
trustExitCode = true
[diff]
tool = diffmerge
[diff "diffmerge"]
cmd = \"C:/DiffMergePath/sgdm.exe\" \"$LOCAL\" \"$REMOTE\"
'프로그래밍 > 기타' 카테고리의 다른 글
[ffmpeg] 오디오, 비디오 코덱 변환 (0) | 2024.06.16 |
---|---|
github ssh 설정 (0) | 2022.09.02 |
[Python] 직접 실행과 import 시 실행 분리 (0) | 2020.05.10 |
[git] git 서버 설정 기본사항 (0) | 2017.01.23 |