git은 가장 많이 쓰이는 분산형 버전 관리 시스템으로, 여러가지 기능을 제공한다.
- 파일이 변경된 이력 작성
- 과거에 작성했던 버전으로 돌아갈 수 있다.
- 협업에 최적화 되어 있다.
- 어떤 변경사항이 있었는지 쉽게 알 수 있다.
- github나 gitlab과 같은 원격 저장소를 이용해 백업을 할 수 있다.
🫐 깃으로 관리하는 서비스를 업로드할 수 있다.- git으로 관리되는 폴더를 git repository라고 한다.
- remote repository는 원격 온라인 서버상의 저장소를 의미하며, 이는 여러 사람이 함께 공유한다.
- local repository는 내 컴퓨터의 개인 전용 저장소를 의미한다.
git init으로 git repository가 아닌 폴더를 git repository로 만든다.
fork를 통해서 다른 사람의 remote repository를 내 remote repository로 복사할 수 있다.
git clone을 통해서 내 remote repository에서 local repository로 가져온다.
git add를 통해서 수정한 파일을 staging area에 존재하게 한다.
이를 통해서 git이 이 파일을 관리할 수 있게 된다.
🍧 git add . 은 모든 수정된 파일을 모두 add한다.
git commit을 통해서 git repository내의 변경사항을 기록하고 저장한다.
🥧 git commit -m "남기실 말"
git push로 commit된 변경사항을 remote repository에 적용한다.
👓 git push <원격저장소이름> <브랜치>
git pull을 통해서 remote respository에서 변경사항을 local repository로 가져온다.
🕶 git pull <원격저장소이름> <브랜치>
git status를 통해서 파일들의 상태를 알 수 있다.
🍖 modified : 수정한 소스파일이 아직 local database에서 commit되지 않은 상태이다.
🍗 staged : 현재 수정한 소스파일을 곧 commit할 것이라고 표시한 상태이다.
🥩 commited : 데이터가 local database에 안전하게 저장된 상태이다.
git restore를 통해서 commit되지 않은 local repository의 변경사항을 폐기할 수 있다.
아직 remote repository에 업로드되지 않고 local repository에만 commit한 기록이면 reset 명령어로 commit을 취소할 수 있다.
🍫 git reset HEAD^ 는 가장 최신 commit하나를 취소한다.
pull request를 통해서 fork해온 내 remote repository의 변경사항을 원래 repository에 반영하도록 요청할 수 있다.
git remote add <원격저장소이름> <repository 주소> 를 통해서 local repository에 remote repository를 연결할 수 있다.
git remote -v로 local repository와 연결된 모든 remote repository의 목록을 확인한다.
충돌이 발생하였을 때는 git status를 통해 충돌 파일을 확인하고 충돌 파일을 열어 수정한다.
☕ git commit 을 하면 별도의 메세지를 남기지 않아도 자동으로 충돌 관련 메세지가 남는다.
🍦 충돌은 여러 사람이 같은 줄의 코드를 수정했을 때 발생한다.
git branch로 local repository의 branch를 확인한다.
git branch -r을 통해서 연결된 remote repository의 branch를 확인한다.
git log를 통해서 commit 기록을 확인한다.