-
Git 초기 셋팅 및 사용 방법수상한 프로그래머/죽은 소스 살려내는 꾸르팁 2019. 4. 7. 11:20반응형
1. 새로운 저장소 만들기
폴더를 하나 만들고, 그 안에서 아래 명령를 실행
git init
2. 저장소 받아오기
로컬경로의 git 프로젝트를 복제(clone)하고 싶을때
git clone /로컬/저장소/경로
원격 서버의 저장소를 복제하고 싶을때
git clone 사용자명@호스트:/원격/저장소/경로
3. 추가와 확정(commit)
변경된 파일은 아래 명령어로 (인덱스에) 추가
git add <파일 이름>
git add *
이것이 바로 git의 기본 작업 흐름에서 첫 단계에 해당됨
하지만 실제로 변경 내용을 확정하려면 아래와 같이 다시한번 커밋
git commit -m "이번 확정본에 대한 설명"
이렇게 하면 변경된 파일이 HEAD에 반영된것.
하지만, 원격 저장소에는 아직 반영이 안 됬음
4. 변경 내용 발행(push)하기
현재의 변경 내용은 아직 로컬 저장소의 HEAD 안에 있으므로 이 내용을
원격서버로 올리기 위해
git push origin master
(다른 가지를 발행하려면 master를 원하는 가지 이름으로 변경 가능)
주의) 기존에 있던 원격 저장소를 복제한 것이 아니라면,
원격 서버의 주소를 git에게 알려야함
git remote add origin <원격 서버 주소>
이제 변경 내용을 원격 서버로 발행할 수 있게됨
5. 가지(branch)치기
가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용함
위에서 저장소를 새로 만들면 기본으로 master 가지가 만들어진 것임.
무언가 변경하고 싶을때 다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면
master 가지로 돌아와 병합하면 됨
가지치기 예제
아래 명령으로 "example"라는 이름의 가지를 만들고 exmaple브랜치에 접속됨
git checkout -b example
아래 명령으로 master로 다시 돌아올수 있음
git checkout master
아래 명령으로는 브랜치 삭제 가능
git branch -d example
새로 만든 브랜치를 원격 저장소로 전송하기
git push origin example
6. 갱신과 병합(merge)
로컬 저장소를 원격 저장소에 맞춰 갱신하려면
git pull
이렇게 하면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에
받아지고(fetch), 병합(merge)이 자동으로 됨
다른 브랜치에 있는 변경 내용을 현재 브랜치(대부분, master 에 병합하겠죠?)에
병합하려면 아래 명령을 실행하세요.
git merge master
병합시 충돌이 일어나 실패할 경우 충돌날 부분을 직접수정하여 다시 병합해야함
출동해결후 병합시
git add <충돌 파일 이름>
변경 내용을 병합하기 전에, 어떻게 바뀌었는지 비교하는 명령어
git diff <원래 브랜치> <비교 대상 브랜치>
7. 로컬 변경 내용 되돌리기
git checkout -- <파일 이름>
이렇게 하면 로컬의 변경 내용을 변경 전 상태(HEAD)로 되돌려줌
주의) 이미 인덱스에 추가된 변경 내용과 새로 생성한 파일은 그대로 남음
만약, 로컬에 있는 모든 변경 내용과 확정본을 포기하려면,
아래 명령으로 원격 저장소의 최신 이력을 가져오고,
로컬 master 가지가 저 이력을 가리키도록 할수 있음
git fetch origin
git reset --hard origin/master
8. 브랜치 이용 방법(ex backtimer 브랜치)
git branch backtimer
git branch 로컬저장소 확인
git branch -r 리모트저장소 확인
커밋후에 git branch origin backtimer
다시마스터로와서 병합 git merge backtimer --no-ff
--no-ff 는 의도적으로 이력을 남기고 싶을때
9. fatal: refusing to merge unrelated histories 오류 발생시
- git pull --allow-unrelated-histories
10. .gitignore 적용 하기(git 무시 하기)
git rm -r --cached .
git add .
git commit -m "Apply .gitignore"반응형'수상한 프로그래머 > 죽은 소스 살려내는 꾸르팁' 카테고리의 다른 글
Eclipse에서 Resource is out of sync with file system. 발생시 대처 (0) 2019.05.03 npm install 시 E404에러 발생이 될때 해결법 (0) 2019.04.14 내부 IP주소로 누군지 찾고 싶을때 (0) 2019.04.05 IOS 아이폰 개발시 xcode 권한 에러 (0) 2019.03.26 인터넷 속도 테스트 사이트 추천 (0) 2019.03.20 댓글