CLI(command line interface)
에 익숙해져야 한다.GUI(graphic user interface)
이다.글로만 이루어진 화면(terminal
, powershell
)에서
1. 어떤 폴더에 들어와있는지 구별
2. 어떤 명령어를 입력하면 어떤 동작이 수행되는지
를 알아야한다.
현재 경로 어딘지 확인
터미널의 경우, pwd
파워쉘의 경우, Get-Location
이라고 입력해봅시다.
pwd
해당 폴더에 있는 파일 확인
터미널의 경우, ls
(list segments의 약자)
파워쉘의 경우, dir
이라고 입력해봅시다.
ls
폴더 이동
원하는 경로로 이동
cd [경로] / [경로]
상위 폴더로 이동
cd ..
폴더 생성
mkdir [폴더명]
복사
cp [옵션][복사 할 디렉토리/파일명][복사 될 디렉토리/파일명]
이동
mv [옵션] [원본파일] [이동위치]
삭제
rm [옵션] 파일명
Git: 각각의 수정 사항을 원할 때마다 수시로 기록하면서, 필요하다면 이전 상황으로 돌아갈 수 있게 해주는 것
git --version
git add
git commit
출처) 깃허브 정리 노션
untracked file
: 아직 git add 를 통해서 관리되기 전의 파일들
tracked file
: 관리되는 파일들
staged 상태
: add 를 한다고 바로 하나의 버전으로서 저장되는 것이 아니라, add 이후에 commit 을 꼭 해야만 하나의 버전으로서 저장된다. 그래서 수정사항이 관리는 되고 있지만, commit 이 되기 전까지의 상태
깃 상태 초기화, git 저장소를 만드는 명령어
git init
여기서 이 git 저장소라는 건 다양한 버전의 파일들이 저장되기 위한 (우리 눈에 보이지 않는) 하나의 폴더이다. 맥은 cmd + shift + .
을 단축키 입력하여 숨긴 파일/폴더를 해보면 .git 폴더
가 생성되어 있다.
hello.txt
파일을 수정한다고 가정하고 진행한다.
특정 파일 깃에 추가하기
git add hello.txt
명령어를 통해서 깃이 hello.txt
파일의 수정 사항을 인지한다.
모든 파일 깃에 추가
git add .
만약 여러 파일의 수정 사항이 있다면 이 명령어를 입력한다.
git으로 관리되는 모든 파일 깃에 추가
git add -A
.
은 현재 명령어가 실행되는 폴더 내부의 파일을 뜻하는 반면에,
-A
를 하게 되면 현재 경로가 어디든 현재 git 으로 관리되는 모든 파일에 대한 수정사항을 반영한다.
파일 상태 확인하기
git status
현재 파일들을 하나의 버전으로서 기록(저장)하기 위한 명령어
git commit -m" [커밋 메세지]"
커밋 메세지는 자유롭게 작성해도 되지만 어떤 코드를 어떻게 수정했는지 알아보기 쉽게 작성하는 것이 좋다.
또한, 협업 프로젝트를 진행할 때는 팀원과 통일시켜주는 것이 좋다.
커밋타입: 동작 기능이름/함수이름
EX) git commit -m" Feat: Create hello.txt"
기본적인 커밋 메세지는 위와 같은 형태로 이루어진디.
commit 메세지를 수정
git commit --amend
위 명령어를 입력하면, 최근 commit의 메세지를 수정할 수 있다.
마지막으로 커밋한 메세지를 수정
git commit --amend -m "[바꾸고 싶은 커밋 메세지]"
만약 마지막으로 커밋한 메세지를 수정하고 싶다면 위와 같이 입력하면 된다.
커밋 내역 확인
git log
지금까지 어떤 버전이 존재하는지 확인한다.
git revert
: 현재까지의 commit 기록을 유지하면서, 특정한 commit 이전으로 되돌리는 명령어
‼️주의해야할 점‼️: 되돌아가고 싶은 commit 이름을 적는게 아니라, 되돌리고 싶은 commit 이름을 적어야한다.
git revert [돌아갈 버전의 커밋번호]
커밋명에는 위 사진에 있는 노란색 글씨에 commit ~~
뒤에 있는 6자리 글자를 작성하면 된다.
위 명령어를 입력하면 아래처럼 표시된다. revert를 쓰면 버전을 되돌아가는 것도 하나의 commit 으로서 기록되기 때문에, 커밋 메세지를 써달라고 표시가 된 것이다.
만약 따로 수정하지 않고 기본으로 쓰고 싶다면, ESC 버튼 누른 후에 → :wq 라고 입력 -> 엔터
하면 된다.
그리고 파일은 원하는 파일로 되돌아간다.
git reset
: 특정 커밋으로 돌아가면서, 그 커밋 이후의 커밋 기록을 삭제하는 명령어
git reset은 다양한 옵션이 있다.
‼️주의해야할 점‼️: 되돌리고 싶은 commit 이 아니라, 되돌아가고 싶은 commit 을 명시
git reset --soft [커밋번호]
reset —soft 의 경우, 수정 사항 (이후의 커밋 내용) 에 대해서 그대로 두고, 기록만 삭제하는 것
(변경사항은 유지, staged 상태로 만듦)
git reset --hard [커밋번호]
reset --hard는 명시한 그 커밋 이후의 모든 수정사항들을 완전히 삭제하는 기능으로
—soft 로 했을 때와는 다르게, 바로 해당 커밋의 내용으로 파일이 되돌아간다.
(변경사항 없어짐)
git reset --mixed [커밋번호]
—soft 와 비슷한데, 이후 수정사항들을 commit 이전으로 되돌리는 것이 아니라, add 이전으로 되돌린다.
(변경사항은 유지, unstaged 상태로 만듦)
git reset [옵션] HEAD^
git reset [옵션] HEAD~[취소할 커밋 갯수]
Git
: 단순히 버전을 기록하고, 관리하는 도구
Github
: 로컬 깃 기록들을 온라인 상에 업로드하고, 보관할 수 있게 해주는 서비스
- Git 으로 기록된 버전들을 올려놓기 위한 구글드라이브 같은 서비스
- Github 없이도 Git 을 얼마든지 사용할 수 있지만, 현업에서는 Gitlab/Github 등과 함께 Git 을 사용하는 것이 일반적
Local Repository
: 우리 컴퓨터에 있는 Git 저장소
Remote Repository
: Github 상의 (온라인 상의) Git 저장소
두 저장소를 연결하는 명령어
git remote add origin [github repo 주소]
Local Repository 가 있는 곳에서 (git init 을 한 그 폴더에서) 아래 명령어를 입력하면 연결된다.
로컬에 저장되어 있는 기록 온라인에 올리기
git push origin [브랜치명]
브랜치는 다음 게시물에서 정리 예정
기본적으로 master가 디폴트 브랜치로 따로 브랜치를 생성하지 않았다면
git push origin master
를 입력해주면 된다.
🎈최근에는 default branch 에 대해서 master 가 아니라 main 이라는 이름을 쓰도록 권고하고 있다.
협업을 위해서는, 우선 이 깃허브 레포를 함께 이용할 사람 (개발을 같이 하면서, push, pull 등을 함께 할 사람) 을 등록해줘야 한다.
그 협업자를 여기서는 collaborator
라고 한다.
git clone
: 깃허브에 있는 repo를 그대로 내 컴퓨터로 가져오고 싶을 때 쓰는 명령어
public 으로 설정된 repo 라면 누구나 git clone 을 통해서 컴퓨터로 내려받을 수 있고,
private 으로 설정된 repo 라면 collaborator 로 등록이 되어있어야만 git clone 을 할 수 있다.
❗️중요한 점: git clone 은 단순한 다운로드와는 다르게, commit 기록이 전부 가져오게 되기 때문에,
git reset 등의 명령어를 통해서 이전 기록으로 돌아갈 수도 있고, git pull, git push 등을 통해서
실제 repo 에 수정 사항을 반영하거나 수정 사항을 내려받을 수도 있다.
깃허브 레포지토리 클론 명령어
git clone [repo 주소]
이미 깃으로 관리되고 있는 폴더가 아닌, 새로운 폴더를 생성한 뒤 터미널에 위 명령어를 입력한다.
깃허브 수정 사항 내려받기
git pull origin [브랜치명]
로컬에는 없는 남의 수정 사항이나 온라인상의 파일 수정을 로컬에 적용시키기 위해서 사용한다.
수정 사항 확인하기
git fetch
깃허브 상의 수정사항을 바로 우리 컴퓨터에 반영하는 것이 아니라, 우선 컴퓨터의 원격 branch 로 수정사항을 가져오고, 원한다면 해당 branch 를 merge 해서 수정 내역을 받아오는 명령어
위 명령어를 실행하면, 깃허브 상의 수정사항을 바로 우리 컴퓨터에 반영하지 않고 브랜치 형태로 받아온다.
원격 저장소에 존재하는 브랜치 확인
git branch -r
수정 사항 병합하기(머지하기)
git diff master origin/[브랜치명]
diff
명령어는 어떤 차이점이 있는지를 확인하는 명령어
git merge origin/[브랜치명]
merge [브랜치명]
은 해당 브랜치를 현재 브랜치로 병합하겠다는 명령어
fork
: github 가 가진 기능으로, 다른 사람이 가진 저장소를 복제해서 내 github 저장소를 새롭게 만드는 기능
파일 뿐만 아니라, clone 과 마찬가지로 commit 기록까지도 모두 복제된다.
🎈clone 은 다른 사람이 만든 저장소 그 자체를 내 컴퓨터에 받아오는 기능이라면,
fork 는 다른 사람이 만든 저장소를 복제해서 ‘새롭게 내 github repo 를 만들고’
‘결국 내 컴퓨터로 받아오는건 내 repo’라는 점에서 차이가 있다.
복제하고 싶은 깃허브 reop에서, 오른쪽 fork 버튼을 누르면 된다.
create fork 버튼을 누르면 완료된다.
이제부터는 해당 repo는 나의 소유이므로, 자유롭게 clone한 후에 push, pull 등을 진행하면 된다.
git remote -v
git remote add upstream [원본 repo 주소]
git pull upstream [브랜치명]
만약 원본 저장소가 업데이트 되었는데, 내 컴퓨터에 이를 반영하고 싶다면 위 명령어를 입력한다.git push origin [브랜치명]
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!