41일차

그루트·2021년 10월 26일
0

git 명령어 모음

새로운 저장소 생성

$ git init

.git 하위 디렉토리 생성 (폴더를 만든 후, 그 안에서 명령 실행을 실행하면 새로운 git 저장소가 생성된다.)

저장소 복제/다운로드

$ git clone <https:.. URL>

기존의 소스 코드 다운로드/복제

$ git clone /로컬/저장소/경로

로컬 저장소 복제

$ git clone 사용자명@호스트:/원격/저장소/경로

원격 서버 저장소 복제
추가 및 확정

$ git add <파일명> / $ git add .

커밋에 단일 파일의 변경 사항을 포함

$ git add -A

커밋에 파일의 변경 사항을 한번에 모두 포함

$ git commit -m "커밋 메시지"

커밋 생성 (실제로 변경된 사항 확정)

$ git status

파일 상태 확인

Branch

$ git branch

브랜치 목록

$ git branch <브랜치이름>

새 브랜치 생성(local로 만듦)

$ git checkout -b <브랜치이름>

브랜치 생성 & 이동

$ git checkout master

master branch로 되돌아가기

$ git branch -d <브랜치이름>

브랜치 삭제

$ git push origin <브랜치이름>

만든 브랜ㅊ를 원격 서버에 전송하기

$ git push -u < remote > <브랜치이름>

새 브랜치를 원격 저장소로 push

$ git pull < remote > <브랜치이름>

원격에 저장된 git 프로젝트의 현재 상태를 다운받고 현재 위치한 브랜치로 병합하기

Push

$ git push origin master

변경사항 원격 서버에 업로드

$ git push < remote > <브랜치이름>

커밋을 원격 서버에 업로드

$ git push -u < remote > <브랜치이름>

커밋을 원격 서버에 업로드

$ git remote add origin <등록된 원격 서버 주소>

클라우드 주소 등록 및 발행

$ git remote remove <등록된 클라우드 주소>

클라우드 주소 삭제

Merge

$ git pull

원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고 병합된다.

$ git merge <다른 브랜치이름>

현재 브랜치에 다른 브랜치의 수정사항 병합

$ git add <파일명>

각 파일을 병합

$ git diff <브랜치이름><다른 브랜치이름>

변경 내용 merge 전에 바뀐 내용을 비교할 수 있다.
tag

$ git log

현재 위치한 브랜치 커밋 내용 확인 및 식별자 부여
로컬 변경사항 return

$ git checkout -- <파일명>

로컬의 변경 사항을 변경 전으로 되돌림

$ git fetch origin

원격에 저장된 git 프로젝트의 현 상태를 다운로드

ETC

git checkout 가져올 브랜치 -- 파일 경로

다른 브랜치에서 현재의 브랜치로 파일이나 폴더를 가져올수 있다.

git에서의 대소문자 에러

이번 TIL을 쓰게 된 결정적 원인이자 나의 경험..!!
git은 기본적으로 파일명 또는 폴더명의 대소문자를 구분하지 못한다..
그런데 만약 프로젝트의 모든 첫글자가 대문자인 상황에 한개의 파일을 소문자로 설정한채 commit push를 했다...?
잠시후 팀원들로 부터 생명의 위협을 느껴도 겸허히 받아들이면 된다...
물론 나는 모든 파일이 초기 셋팅 상태로 돌아가버렸지만 위협을 주진 않았다...(사실 너무 당황스러워서 위협줄 생각조차 못함)
이참에 Git 공부할수 있어서 오히려 좋아...
그럼 이런 소문자 공격을 받았을 때 어떻게 하면되는지 알아보자....!!!!

1. git config --global core.ignorecase

=> git아 제발 대문자랑 소문자 무시하지 말아줘....

2. git rm -r --cache .

=> 저장된 캐시를 모두 지워버린다. 사실 처음에는 아무것도 모르고 이 명령어를 따라 쳤었는데 나중에 알고보니 로컬에는 파일을 남기지만 원격저장소에는 파일을 모두 삭제해버리는 어마무시한 명령어였다.. 진작 알았다면 치기전에 이백만번 고민했을듯... 여튼 어쩔수 없다 용기가 없다면 나는 대소문자 지옥에 빠져서 돌아오지 못할수도 있으니... 일단 친다.

3. git add .

=> add 하고 (여기서 무시하지말라고하긴했지만 혹시 모르니까 슬쩍 소문자를 대문자로 바꿔서 add했다. 만약을 대비해서 나쁠건 없으니까)

4. git commit -m "remove all cache"

=> 원격저장소에 다 삭제했다고 하니까 벌벌떨면서 빨리 커밋하기!

출처: https://velog.io/@4_21ee/TIL-27-Git%EC%B0%AE%EC%95%84%EB%8F%84-%EC%95%8C%EC%95%84%EB%91%AC%EC%95%BC%ED%95%A0-Git%EB%AA%85%EB%A0%B9%EC%96%B4

profile
i'm groot

0개의 댓글