반응형
안녕하세요. 데프홍입니다.
프로그래밍을 하면서 git 을 사용하기 시작했는데, git 에 대해서 간단히 정리를 해볼까 해서 포스팅을 합니다.
버전 관리 시스템이란?
파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전을 다시 불러올 수 있는 시스템.
필요한 이유?
- 개발 하는 동안 코드의 변경사항을 보존하기 위해
- 협동 작업을 하기 위해
제가 파악하고 있는 git 의 대략적인 흐름.
( git 의 대략적인 흐름에 대한 이미지 첨부하기. )
git 의 개념
- Fetch : 원격 저장소에서 최신 리스트를 받아서 갱신시켜준다.
- Pull : 원격 저장소의 새로운 데이터를 받아서 머지시켜줌과 동시에 새로운 버전으로 갱신시켜준다.
- Push : 원격 저장소로 커밋한 데이터를 올린다.
- commit : 로컬 작업영역에서 수정한 것을 확정시킨다.
- checkout : 로컬 작업영역을 변경.
- branch : 작업영억
- merge : 데이터를 합체 시켜준다. ( 최신내역은 최신내역으로, 충돌된 부분은 충돌된 부분이라고 표시 )
자주 쓰이는 git 명령어
- git init : 현재 디렉토리(폴더)에 git 저장소를 생성.
- git add 파일명 : 파일 추가
- git commot -m "커밋메세지" : 변경된 파일 및 변경사항을 기록하는 작업 ( => 작업결과 보고서를 작성하는 것이라고 생각하면 됨. )
- git status : 커밋되지 않는 변경사항을 조회. ( => 작업결과 보고서에 기록안한 변경내용들을 확인 )
- git diff : 변경 전과 변경 후의 차이점을 보여준다. ( 수정하기 전 <-> 수정하기 후 를 비교확인 )
- git mv 파일명 새파일명 : ( mv : move 줄임 ) 파일명 변경.
- git checkout -- 파일명 : 변경내용을 취소하고, 이전 커밋상태로 되돌림.
- git branch : 현재 존재하는 브런치 조회
- git branch (newBranchName) (oldBranchName) : oldBranchName 을 newBranchName 이름으로 새로 만든다.
- git branch (branchName) : branchName 이름으로 새로운 브런치를 만든다.
- git branch -d (branchName) : branchName 을 삭제.
- git checkout (branchName or tagName) : branchName 혹은 tagName 로 작업영역을 변경.
- git checkout -b (branchName1) (branchName2) : branchName2 에서 branch1Name 라는 브런치를 만들고, 체크아웃.
- git merge (branchName) : (branchName) 를 현재의 브런치로 합친다.
- git clone (address) : 원격저장소 복제.
- git fetch : 원격저장소의 변경사항 체크하여 원격브런치를 갱신. ( 최신 리스트로 갱신시키는거나 마찬가지임 )
- git pull : 원격브런치의 변경사항을 모두 가져와서 로컬브런치에 반영 ( 머지 작업과 동시에 진행 , 충돌된 작업이 있으면 컨플릿 메세지가 뜨며, 컨플릿 난 파일을 수정하여 커밋을 시켜줘야 pull 완료 )
- git push : 원격브런치에 로컬브런치 수정내용을 반영.
이상으로 제 기준에서 많이 쓰이는 git 명령어를 나열해봤습니다.
자세한 내용은 git-scm 의 "GitHub Cheat Sheet(PDF)" 을 참고하시면 됩니다.
반응형