초기 세팅
git config --global user.name "name"
git config --global user.email "name@mail"
# 새로운 폴더/Project를 만드는 경우
git init
작업트리/스테이지/저장소 관리
git status
# File 수정
# 스테이지 등록
git add "file name"
# 저장소 업로드
git commit -m "msg txt"
git log
##################################
# add + commit 동시에
git commit -am "msg txt"
* .gitignore 파일 내에 버전관리에서 제외할 파일 or 디렉토리를 작성하면 버전 관리에서 제외 할 수있음.
Git 작업 되돌리기
스테이지에 올라가지 않은 상태에서는 git checkout -- "file name"으로 되돌리 수 있음.
스테이징이(add) 된 경우에는 git reset HEAD "file name" 로 되돌릴 수 있음.
최신 커밋을 되돌리는 방법으로는 git reset HEAD^ 로 수행 가능함.
마지막으로 특정 commit으로 되돌리는 방법으로는 git log에서 기록을 보고 git reset --hard "commit hash"로 되돌릴 수 있음. 하지만 reset을 하면 그 사이의 commit된 version들은 삭제됨. 삭제를 하지 않으려면 revert를 사용면 됨.
git checkout -- "file name"
git reset HEAD "file name"
git reset HEAD^
git reset --hard "commit hash code"
git revert "commit hash code"
Git & Branch
master 브랜치에서 분기로 user마다 새로운 브랜치를 만들어서 사용할 수 있습니다. 그리고 수정된 내용을 master로 다시 병합하여 유지/보수 할 수있음. 브랜치를 만드는 방법으로는 아래 명령어가 있습니다.
git branch # branch 조회
git branch (branch name A) # 새 branch 생성 (HEAD -> master, A)
git checkout (branch name) # 해당 branch로 이동
git checkout master
git merge (branch name) # A로 하면 A를 master로 merge함 (--no-edit 옵션도 있음)
git brance -d (branch name) # 해당 branch를 삭제 (완전 삭제는 아님)
같은 파일의 다른 위치를 수정한 경우 병합하면 자동으로 한개의 파일로 합쳐짐. 하지만 같은 파일 내 같은 위치를 수정한 경우에는 CONFLICT 경고가 나오고 충돌이 생긴 file에 표시가 되어있음. 이 부분이 해결되야 merge가 정상적으로 진행이 됨. (P4Merge, Meld 같은 프로그램으로 이런 충돌을 관리할 수 있음)
Github
git remote add origin (github link) # Github에 연동 시작
또는
git clone (github link) (Dir path)
git remote -V # Github 연결 상태 확인
git push -u origin master # commit을 한 file을 github에 업로드
###########################################
# pull 전에 미리보기
git fetch
git checkout FETCH_HEAD
git diff HEAD origin/master # 바뀐 내용만 보기
git checkout master
git merge FETCH_HEAD
# origin (원격 저장소)의 내용을 master branch로 가져옴 (pull = fetch + merge FETCH_HEAD)
git pull origin master
매일 시작하기 전에 pull을 하고 시작하는 것이 충돌을 방지하는데 좋음. 그리고 git checkout -b newBranch로 하면 새로운 브랜치를 만들고 체크아웃까지 할 수 있음. 그리고 이 branch를 push 할 때에도 git push origin newBranch로 업로드를 하면 됨. branch를 원격 저장소에 업로드 했으면 merge를 위해서 new pull request를 해야함.
'Programming > Programming Skills' 카테고리의 다른 글
Unity 게임 디자인 패턴 (1) | 2020.03.18 |
---|