기본 동작

김수정·2020년 8월 14일
0

코드의 변경 이력 기록하기

git의 주요 기능인 코드의 변경이력을 기록하는 방법을 알아봅시다.

git status # git에서 내 파일들의 상태를 알 수 있습니다. 
git add <fileName> # staging에 올립니다. 모든 파일을 올리려면 git add . 을 입력합니다.
git commit -m 'message' # message를 적어서 변경 이력을 기록합니다. 
# 기존 변경이력을 받아서 내 코드와 병합하는 방법은 여러 가지가 있으므로 여기서 다루지 않겠습니다.
git log --branches --not --remotes --oneline # push 전 commit 리스트 확인합니다.
git push <remoteName> <branchName>

커밋 기록을 확인하기

다양하게 기록을 확인해 봅시다.

git log # normal하게 확인합니다. 
git log -g # 브랜치 상관없이 이 repository의 모든 로그를 보여줌.
git log <fileName> # 특정 파일의 로그를 확인합니다.
git show <commit> # 커밋의 상세내용 확인. 파일 코드가 무엇이 바뀌었는지 다 보여줌

코드 병합하기

이전에는 로컬에 master, develop 등의 주축이 되는 브랜치들을 다운 받아서 거기서 서브 브랜치를 따고 작업한 뒤 merge를 했습니다. 그랬더니, 제가 작성하지 않은 코드들까지 함께 들어가서 코드 관리가 되지 않더군요.
따라서 로컬에 따로 주축 브랜치를 두지 않고 원격에서 바로 가져와 작업해보도록 하겠습니다.

git branch <localBranchName> <remote> <remoteBranchName> # 원격에서 브랜치 따오기
git fetch <remoteName> <branch> # 원격에서 바뀐 내용을 내 코드에 적용하지 않고 가져만 옵니다. <>를 다 생략하고 실행하면 원격에 있는 모든 브랜치가 대상이 됩니다.
git diff <localbranch> <remoteName> <remoteBranch> # 내 코드와 원격 브랜치의 코드가 얼마나 다른지 확인해 봅니다. 일반적으로 git diff HEAD origin/master 가 실행됩니다.
git merge <branch> --no--ff # 다른 점을 확인해 보고 merge를 하고, 컨플릭트는 해결합니다.

브랜치 이동하기

해당 브랜치에 커밋하지 않은 내용이 있는 상태로 브랜치를 바꾸면, 그 변경사항들이 그대로 옮긴 브랜치에도 남아있게 됩니다. 이를 방지하려면 커밋을 하던가 임시저장을 해야합니다. 하지만 커밋을 하지 않은 이유가 아직 작업이 완료되지 않아서라면 임시저장을 하는 게 좋겠죠?

git stash list # 임시저장목록을 확인합니다.
git stash save <message> # 현재 작업을 일시적으로 저장합니다. message를 넣어서 저장할 수도 있습니다.
# ~~~ 다른 브랜치 가서 다른 작업 중 ~~~
git stash pop <인수> # 임시저장한 것 복원
git stash drop <인수> # 임시저장한 해당 리스트 삭제합니다. 
git stash clear # 임시저장 리스트 모두 삭제합니다.

브랜치 삭제하기

git branch -d <branchName> # 로컬 브랜치 삭제하기 
git branch -D <branchName> # 로컬 브랜치 강제 삭제하기
git push origin :<branchName> # 원격 브랜치 삭제하기

브랜치 리스트 확인

git remote update # 원격 내용 새로 받기
git branch -r # 원격 브랜치 리스트 보기
git branch # 로컬 브랜치 리스트 보기
git branch -a # 로컬/원격 브랜치 리스트 보기
profile
정리하는 개발자

0개의 댓글