## 간단 정리
Git : 컴퓨터 파일의 변경사항을 추적하고, 여러 사용자들 간에 해당 파일의 작업 내용을 공유하기 위한 버전 관리 시스템
Github : Git 기반, 작업한 파일들을 원격으로 저장할 수 있게 해주는 원격 저장소
작성한 코드를 한번 저장소에 올리면, 반드시 수정할 일이 생긴다. 조금씩 코드를 수정하며 파일들을 업데이트(변경/삭제) 하다 보면, 새롭게 변경된 파일들이 마치 상자를 쌓는 모양처럼 차곡차곡 쌓이게 기록들을 남기게 되는데, 이 때 제일 처음 올렸던 원시 상태의 파일이 쉽게 말하면 ‘버전 1' 인 것이다. 이렇게 코드들을 수정하면서, 예를 들자면, 최종.ver’, ‘최최종.ver’, ‘진짜최최최종.ver’ 와 같이 버전들을 계속 업데이트 하며 관리한다고 해서 Git 을 ’ 버전 관리 시스템 (Version Control System)’ 이라고 부른다.
1. Git 기본 명령어
저장소(repository) 생성 | |
mkdir (폴더명) | 폴더/디렉토리 만들기 |
ls -al | 현재 폴더의 파일 리스트(ls) 전체(al) 확인하기 |
cd (폴더명) | 해당 폴더로 진입하기 |
clear | 로그 기록 위로 올려서 화면 정리하기 |
git init | 현재 디렉토리에서 git 을 시작함. (생성한 디렉토리에서 실행하면 git 저장소로 초기화되고, git 이 관리할 수 있는 일종의 사이트가 됨. 최초 1회만 초기화 하면 됨) |
git status | 현재 저장소 상태를 확인해줌 (커밋 전 후로 사용하면 잘 수행되었는지 확인할 수 있음) |
git remote add origin (ssh key) | 원격 저장소에 origin 이라는 저장소를 추가함. 관례적으로 origin 이라는 명칭을 사용함. |
git remote | 원격 저장소가 잘 만들어졌는지 상태 확인하고 싶을 때 사용. |
git fetch origin | origin 이라는 원격 저장소 내의 정보를 내 로컬 저장소로 '단순히' 불러옴. (원격 저장소와 로컬 저장소가 병합되지는 않은 상태) |
git pull origin | origin 이라는 원격 저장소 내의 정보를 로컬 저장소로 불러올 뿐만 아니라 자동으로 병합까지 수행함. |
브랜치 (branch) 생성 | |
**branch 란?** - 프로젝트의 기준 코드인 main 브랜치로부터 독립적인 작업 공간을 만들어 주는 기능. - 여러 개발자가 서로 다른 버전의 코드를 만들 때 서로의 작업에 영향을 주지 않기 위해 필요함. (여러 작업을 동시에 진행할 수 있다는 뜻) |
|
git switch -c main origin/main | -c 는 create 의 의미. main 이라는 브랜치를 create 하는데, 이 브랜치에는 origin 에 있는 main 브랜치의 정보를 가져옴. |
git switch (브랜치명) | 작업중인 브랜치 변경 |
git branch -d (브랜치명) | 특정 브랜치 삭제 |
git branch (브랜치명) | 저장소에 브랜치 추가 |
파일들의 작업 상태 변경 | |
code . | 온점(.) 은 현재 폴더를 의미함. 이 위치에서 Visual Studio Code 를 열라는 의미. |
open . | (Mac OS 기준) 현재 폴더의 finder 가 열림 |
git diff | 변경된 내용을 확인할 수 있음 |
git add (파일명) git add . |
삭제/수정 등 파일에 변경이 있을 때 사용. 해당 파일을 staging area 로 옮겨줌. 온점(.) 을 사용하면 폴더 내의 전체 파일을 add 할 수 있음. 이제부터 이 파일의 수정, 삭제 등의 모든 정보는 Git에 기록이 되어짐. **staging area : 변경된 파일들을 무대 위로 올려서 commit 할 수 있는 최종 상태 |
git commit [-m "커밋 메세지"] | 수정한 파일을 로컬 저장소에 최종적으로 제출하는 것. [] 대괄호 안의 내용은 생략 가능. 만약 생략하면 커밋 메세지를 추가할 수 있는 vim 편집기가 열림. git commit을 하면 현재 staging 된 파일들을 그대로 스냅샷으로 찍어서 로컬 저장소에 보관하게 됨. 이 스냅샷이 하나의 히스토리 기록이 되는 것. 이 기록을 기준으로 과거로 되돌아갈 수도 있고 미래로 갈 수도 있고 다른 브랜치로도 이동할 수 있는 기준점이 됨. |
git push origin main | 로컬 저장소에 commit 한 것들을 원격 저장소인 origin 의 main 브랜치에 올림. |
git push origin --all | 로컬 저장소의 모든 브랜치를 push 함. |
rm (파일명) | 파일이 삭제 '준비' 상태가 됨. (실제 삭제된 것은 아니고 ‘삭제’ 라는 것을 staging area 에 올린 것. 완전 삭제하려면 또 다시 add -> commit -> push 의 과정을 거쳐야 함.) |
git restore --staged (파일명) | 수정해서 staging area 로 보낸 내용을 다시 unstaging 상태로 바꿈. **unstaging area : 파일에 변화가 있지만 commit 은 할 수 없는 상태. (add 이전 상태) |
git restore (파일명) | stage 에서 내려온 파일을 복구.(수정 전으로 바꾸거나 삭제 이전 상태로 되돌림) |
git clone (저장소 주소) | 원격 저장소에 있는 디렉토리를 내 로컬 저장소로 복제. 순수파일들과 이 프로젝트의 커밋되었던 히스토리 정보까지 모두 복제함. 기존 저장소와 새로 복제된 저장소는 연결되어 있지 않음. |
키 로그 조회 | |
git log | 현재까지 했던 commit 내역을 볼 수 있음. |
git log -숫자 | 최근 몇 개의 commit 을 보여줄 지 지정. |
git log --graph | 내역들 좌측에 이음선 표시 |
** SSH key 란? **
- 서버에 접속할 때 비밀번호 대신 key 를 제출하는 방식으로, 비밀번호보다 높은 수준의 보안을 필요로 할 때나, 로그인 없이 자동으로 서버에 접속할 때 사용함.
- Secure Shell 의 준말로 비공개 키(private key) 와 공개 키 (public key) 한 쌍을 이용해 컴퓨터를 인증하는 방법으로 정보를 교환하는 방식. 비공개 키는 외부에 공개되지 않는 키이며, 공개키는 외부에 공개되는 키임.
- 비공개 키는 클라이언트 컴퓨터에 위치해야 하고, 공개키는 서버에 위치해야 함.
- 키를 등록하면, 그 뒤로 원격 저장소에 접근할 때마다 사용자 컴퓨터의 비공개 키와 깃허브 서버의 공개키를 비교함. 두 키가 서로 일치하는 지 확인 후 컴퓨터와 서버가 연결됨.
(출처: 생활코딩 SSH https://www.opentutorials.org/module/432/3738)
2. vim 편집기 (리눅스, UNIX 에서 사용할 수 있는 텍스트 편집기) 명령어
i | 일반 모드에서 입력 모드 (insert) 로 전환됨. |
esc | 일반 모드로 전환됨. |
:wq | 변경된 상태를 저장하고 편집기를 나감. |
:q | 아무런 수정 없이 편집기를 나감. |
:q! | 현재 모드에서 강제로 탈출하여 편집기를 나감. |
0 | 현재 행의 처음으로 이동 |
$ | 현재 행의 끝으로 이동 |
x | 입력 모드가 아닌 일반 모드에서 한 글자 삭제 |
3x | 입력 모드가 아닌 일반 모드에서 3글자 삭제 (숫자는 임의로 지정) |
u | 방금 했던 수행 되돌리기 (undo) |
'독서&그 외' 카테고리의 다른 글
IntelliJ 단축키 for Mac OS (0) | 2022.08.16 |
---|---|
'함께 자라기 (애자일로 가는 길)' 을 읽고 (0) | 2022.08.07 |
Apple 의 감성 반도체 M1 에 관하여 (0) | 2022.08.04 |
PC 견적 맞춰보기 (0) | 2022.08.03 |
컴퓨터 구조 이해 (0) | 2022.08.03 |
댓글