- 원격 저장소 생성시 기존 폴더와 연동
- cd existing_folder
- git init
- git remote add origin xxxx.git(원격저장소 주소)
- git add . (모든 파일 stage로 올리기)
- git commit -m "Initial commit" (커밋 메시지 "Intial commit" 으로 커밋하기)
- git push -u origin master
- 저장소 Clone
- mkdir : 저장소 clone 폴더 생성
- git clone[주소 : http, ssh로 시작하는 주소값.git]
- git checkout -t [원격 저장소의 브랜치 이름 ex. origin/branch-name]
- git switch를 사용할 수도 있음
- git switch -c [branche-name] : 기존 브랜치가 있더라도 변경점 무시하고 무조건 스위칭
- 새 브랜치 생성
- git checkout -b [branch-name]
- 리모트 브랜치에도 생성
- git push origin [branch-name]
- 로컬 브랜치와 리모트 브랜치를 서로 연동하기
- git branch --set-upstream-to origin/[branch-name]
- 브랜치 삭제
- 메인브랜치로 checkout
- git checkout [main-branch]
- 브랜치 삭제
- git branch --delete [branch-name]
- 작업된 사항이나 commit이 이력에 남아있는 경우 강제로 삭제
- git branch -D [branch-name]
- 최종적으로 리모트 브랜치도 삭제
- git push origin :[branch-name]
- 메인브랜치로 checkout
- Merge나 Pull 시 로컬 작업과 충돌이 일어나 'Your local changes to the following files would be overwritten by merge:' 메세지가 발생할 경우 해결방법은 두가지
- git reset --hard HEAD
- 로컬 브랜치가 가리키는 마지막 cmmit (HEAD) 위치로 모든 변경사항 되돌리기 (로컬 변경사항이 모두 날라감! 주의)
- git checkout HEAD -- myfile.xxx
- 문제시 되는 특정파일만 되돌리기
- untracking files 모두 삭제
- git clean -fd
- git reset --hard HEAD
- Push 시 매번 원격 저장소와 브랜치명을 타이핑하는게 번거롭다면, -u 옵션을 써서 push 해보자.
- git push -u origin [브랜치명]
- 이 이후에는 git push만 입력해도 자동으로 해당 브랜치에 push를 해준다
- 리모트 브랜치와 로컬브랜치의 관계를 보고싶을때
- git remote show origin
- 특정 유저의 로그만 보고 싶을때
- git log --author=authorname
- 특정 파일의 로그만 보고 싶을때
- git log filename
- config path 확인
- git config --system --edit (Program Files/Git/etc/gitconfig
- git 을 따로 받아서 next next만 했다면 해당 폴더에 존재하고, 아니면 git 설치시 설정한 경로)
- git config --global --edit (사용자 폴더/.gitconfig)
- git config --local --edit (각 프로젝트의 .git/config)
- 각 config의 경로를 찾을 수 없다면 git config --list --show-origin 으로 확인가능
- 우선순위는 local > global > system 이므로 만약 동일한 값이 양쪽에 존재할경우 덮어써짐
- git config --system --edit (Program Files/Git/etc/gitconfig
- 서로 다른 두 git을 합칠때
- 로컬에서 git으로 작업하다가 원격 저장소를 만들어 거기에 push 요청시
- Updates were rejected because the tip of your current branch is behind... 같은 요청 발생시 아래 명령어로 해결
- git pull origin 브런치명 --allow-unrelated-histories
- 각각의 히스토리가 있는 git 2개를 통합시 기본적으로 거부하는데, 해당 명령은 내 로컬에 있는 히스토리로 원격 히스토리를 강제로 덮어쓰라는 명령
- 이 상황은 local 에서 git 으로 작업하다가 gitlab에 새 프로젝트를 만든 후 거기에 --set-upstream-to 명령을 통해 연동시 발생한다.
'Git' 카테고리의 다른 글
Line Ending 설정 (1) | 2020.09.03 |
---|