CAFE

카테고리가 없는 글

Git 정리 git 도움말 git 사용방법

작성자운영자|작성시간18.03.18|조회수1,981 목록 댓글 0

#kimtheho

 

 

깃 충돌난 file 목록 확인하기:

git diff --name-only --diff-filter=U

 

깃 메시지 한영 사전:



관계 없는 커밋 내역의 병합을 거부합니다(refusing to merge unrelated histories) 조치:
git pull origin

--allow-unrelated-histories

Git remote 저장소 아이디와 패스워드 입력:
git push https://username:password@myrepository.biz/file.git --all

OSX에서 source tree로 push 사용할 때 설정해줘야하는 설정 값:
git config —global credential.helper osxkeychain

 

원격 저장소 URL 수정하기:

git remote set-url origin http://192.168.2.203/something.git

 

원격 저장소 정보보기:

git remote -v

 

최신 걸로 덮어쓰기(복구가 불가 하오니 어쩔 수없을 때만 사용하시고, 반드시 백업 후 사용하세요!!! 리모트서버까지 영향을 줍니다):

'error: 병합 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다:' 와 같이 나온 경우, 덮어쓰기하고 싶을 때 사용

git fetch --all
git reset --hard origin/master

 

git log 시, 한글 깨짐

set LC_ALL=C.UTF-8

git config --global core.quotepath false

 

 

현재 branch 이름보기

$ git branch

or

git branch --show-current

 

 

특정 파일 보기

git log -p abc.txt

 

계정 저장하기

(보안은 중요하지 않고 매번 입력하기 귀찮을 때 사용. Windows가 아니라면 일반적으로 Git계정이 저장 되지 않음.)

$ git config credential.helper store
또는
$ git config --global credential.helper 'store --file ~/.my-credentials'

 

 

git 디렉토리 대소문자 반영 안 되는 게 기본값. 폴더 대소문자 반영되도록 하기:

git config core.ignorecase false
or
git config --global core.ignorecase false

 

git file 변경 내용 확인하기

git diff HEAD example.txt

.gitignore가 안 먹힐 때

git rm -rf --cached .
git add .

git 특정 상태로 변경하기

git checkout 4자리 이상 hash

 

git 특정 상태(커밋)끼리 비교하기

$ git diff {4자리 이상 hash 1} {4자리 이상 hash 2} <-중가로는 지우고해야 함.

 

 

원격 branch 삭제하기 예)

git push origin -d dev


push할 원격서버를 여러개 설정하기

git remote set-url --add --push origin http://domain.com/xxx.git

 

일반 git을 bare 저장소로 변경하기

https://stackoverflow.com/questions/2199897/how-to-convert-a-normal-git-repository-to-a-bare-one

결론만 말하면 .git 폴더만 복사해서 bare로 설정해주면 끝이다. 

$ cd repo
mv .git ../repo.git # renaming just for clarity
cd ..
rm -fr repo
cd repo.git
git config --bool core.bare true

 

git commit 수정

git commit --amend

 

Git 특정 파일 변경 이력 보기

git log -p --follow --stat -- README.md # 변경 내용, 파일 이름 변경 추적, 통계 정보 포함

 

Git  계정 지우기, Git 자격증명 해제

git config --global --unset credential.helper

 

Git Log를 한번에 보는 방법

git --no-pager log

 

 

 

되돌리기

 

1. 커밋하지 않은 변경 사항 되돌리기

작업 디렉토리(Working Directory)에서 수정한 내용을 아직 커밋하지 않은 경우, 다음과 같은 방법으로 되돌릴 수 있습니다.

  • 특정 파일 되돌리기

    git restore [파일명]

    또는 이전 버전의 Git에서는 다음 명령어를 사용합니다.

    git checkout -- [파일명]

     

    이 명령어는 특정 파일의 수정 사항을 마지막 커밋 상태로 되돌립니다.

 

  • 모든 변경 사항 되돌리기

    git restore .

     

    또는

    git checkout -- .

    (끝에 쩜 있음)

    현재 디렉토리의 모든 수정 및 추가된 파일을 마지막 커밋 상태로 되돌립니다.

 

  • 추가한 파일(Untracked file) 삭제하기

    새로 추가했지만 아직 git add 하지 않은 파일을 한 번에 삭제하려면 다음 명령어를 사용합니다.

    git clean -fd
    • -f: 삭제를 강제합니다.

    • -d: 디렉토리까지 함께 삭제합니다.

 

2. 커밋한 변경 사항 되돌리기 (원격 저장소에 푸시하지 않은 경우)

로컬 저장소에 커밋은 했지만 아직 원격 저장소(예: GitHub)에 푸시하지 않은 경우, 커밋 자체를 되돌릴 수 있습니다.

  • 가장 최근 커밋 되돌리기

    git reset HEAD^

    이 명령어는 가장 최근의 커밋을 취소하고, 해당 커밋에서 변경되었던 내용들은 작업 디렉토리에 그대로 남겨둡니다. (Staged 상태도 해제됩니다.)

    • --soft: 커밋만 취소하고 변경 내용은 Staged 상태로 유지합니다.

    • --hard: 커밋을 취소하고 해당 변경 내용을 작업 디렉토리에서 완전히 삭제합니다. (주의: 복구가 어렵습니다.)

 

  • 특정 커밋으로 되돌아가기

    git reset [커밋 해시]

    특정 커밋 지점으로 프로젝트의 상태를 되돌립니다. [커밋 해시]는 git log 명령어로 확인할 수 있습니다.


3. 원격 저장소에 푸시한 변경 사항 되돌리기

이미 원격 저장소에 푸시한 커밋은 다른 팀원들과 공유되었을 가능성이 높기 때문에 git reset을 사용하면 이력이 꼬일 수 있습니다. 이 경우에는 되돌렸다는 새로운 커밋을 만드는 git revert를 사용하는 것이 안전합니다.

  • 특정 커밋의 변경 내용 되돌리기

    git revert [커밋 해시]

    이 명령어는 [커밋 해시]에 해당하는 커밋에서 적용된 변경 사항을 되돌리는 새로운 커밋을 생성합니다. 기존의 커밋 기록은 그대로 유지됩니다.

    명령을 실행하면 커밋 메시지를 작성하는 편집기 창이 나타나며, 저장 후 종료하면 새로운 되돌리기 커밋이 생성됩니다. 이 새로운 커밋을 원격 저장소에 푸시(git push)하면 수정 사항이 반영됩니다.

 

 

 

 

 

 

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼