vscode로 안열림
CMD 명령어
cd: change directory
- 현재 작업 중인 디렉토리를 다른 디렉토리로 이동하는 역할
- cd [Documents]를 입력하면 현재 디렉토리를 "Documents" 폴더로 변경
- cd .. : 상위 폴더로 이동
start .
- 현재 디렉토리를 파일 탐색기로 여는 명령어
- 여기서 점 (.) 은 현재 디렉토리를 의미
- 점 두 개(..)는 상위 폴더를 의미
mkdir: make directory
rmdir: remove directory
dir
- 현재 디렉토리 내에 있는 파일 및 폴더 목록을 표시하는 명령어
- 특정 조건에 맞는 파일만 보고 싶다면, **dir *.txt**와 같이 사용. 이 경우, 현재 디렉토리 내의 .txt 파일만 표시
git config
- Git에서 설정을 관리하기 위한 명령어
GIT BASH 명령어
dir → li
li -alh
- 현재 디렉토리의 모든 파일(숨김 파일 포함)을 자세한 정보와 함께, 사람이 읽기 쉬운 크기 단위로 나열
- 보통 점(.)으로 시작하는 파일은 숨김 파일이다.
- 숨김 파일 표시하면 볼 수 있으며 일반 파일과 달리 살짝 흐리다.
저장소
세이브 = 커밋
커밋을 하기 위해서는 저장소라는 것이 필요하다.
git init
- 저장소 만드는 명령어
참고로 저장소 git은 숨김 파일이다.
작업자
커밋을 하기 위해서는 이 커밋을 누가 했는지에 대한 정보가 필요하다.
- 작업자 이름 / 작업자 이메일
여기서 주의할 점.
git으로 협업할 때, 협업자들이 같은 이름과 이메일로 작업할 수 있다.
따라서 확인.
- git config user.name (git 설정 중에 user name이 있는지 체크)
- git config user.name "이름"
- git config user.email
GITHUB 계정의 이름과 이메일을 꼭 맞추어야 하는 것은 아니다.
(ㄴ GIT 사용자와 GITHUB 계정은 별개)
그러나 관례상 맞춘다.
원래는 저장소를 만들 때 마다 (init) 작업자를 세팅해야하지만 글로벌하게 (한 번에) 세팅하는 방법이 있다.
- git config --global user.name
- git config --global user.email
파일 생성
echo
- 주어진 텍스트나 변수를 그대로 출력하는 명령어.
cat a.html
- 터미널에서 cat 명령어를 사용해 a.html 파일의 내용을 출력하는 명령어.
- cat: 파일의 내용을 읽어서 터미널에 출력하는 명령어. 파일을 연결(concatenate)하여 출력할 때도 사용됩니다.
- a.html: 읽어서 출력할 파일 이름. 이 경우 a.html이라는 HTML 파일의 내용을 터미널에 보여주겠다는 의미입니다.
- site2 안에 html 문서 안에 hi 문자열 생성됨
- cat 명령어를 사용해서 확인
- 바꿀수도 있다.
- echo "hi3" > a.html 명령어를 입력한다면?
ㄴ a.html 안에 내용이 있다면 그 내용을 모두 지우고 hi3로 변경된다.
ㄴ a.html 파일이 없다면 파일을 생성하고 그 안에 hi3가 작성된다.
git status (장바구니 확인하기)
작업 디렉토리
- a.html, b.html, c.html
인덱스 (장바구니)
리포지터리 (.git)
작업 디렉토리에 있는 파일을 리포지터리에 저장하는 것이 커밋이다.
이때 리포지터리에 저장하기 전에 장바구니 역할을 하는 것이 인덱스이다.
git status
- 해당 명령어를 통해 장바구니에 담긴 것은 초록색, 담기지 않은 것들은 빨간색으로 확인할 수 있다.
git add a.html
- a.html을 인덱스(장바구니)에 추가
(warning 무시하면 됨)
git rm --cached a.html
- a.html을 인덱스(장바구니)에서 제거
git commit (장바구니에 있는 거 저장하기)
- m "a.html, b.html"
ㄴ 여기서 m은 message를 의미한다.
ㄴ "메시지 내용"을 입력하면 된다.
주의할 점
- 인덱스(장바구니)에 파일이 없다면 당연하게도 commit 되지 않는다.
git status는 변경된 내용만 보여준다.
- 가장 마지막 커밋 파일 기준으로 봤을 때, 변경된 내용만 보여준다.
- 각 커밋별로 고유의 이름이 생성된다.
- 커밋이 된 파일은 status에 나타나지 않는다.
git status는 변경된 것만 보여주기 때문이다.
- 변경된 내용이 나타난다.
- a.html의 내용을 다시 "hi"로 변경
ㄴ 내가 commit한 파일과 내용 변화가 없다.
ㄴ 따라서 git status에서 다시 a.html은 보이지 않게 된다.
git log 로 커밋내역 확인
- 해당 폴더를 기준으로 cmd 창이 나타난다.
- shift + f10
- git bash로 열기
git add .
- 현재 폴더 안에서 변경된 내용을 한 번에 모두 인덱스에 담는 명령어
git log
- 커밋 내역을 확인할 수 있다.
git log --oneline
- 위에 있을 수록 최신이다.
가장 마지막 커밋 취소
git reset HEAD
git reset HEAD^
- 한 칸 위로
git reset HEAD^^
- 두 칸 위
인덱스에 넣은 후 커밋하기 전 파일을 수정했다면?
- 장바구니에 담은 후 파일을 수정했을 경우?
ㄴ 다시 add 해야한다.
과거 커밋 상태로 임시적으로 돌아가기 (git checkout )
과거 코드가 뭐였는지 확인해보고 싶을 때
git status 했을 때 아무것도 안 나오는 상태일 때여야 한다.
현재 나의 위치는 20dib3b
f442bdf로 가고싶다면?
git checkout -f <고유번호>
- gsm07@EJ MINGW64 ~/git_projects/site2 (main)
ㄴ 내가 지금 현재를 보고 있다는 의미
- gsm07@EJ MINGW64 ~/git_projects/site2 ((f442b5f...))
ㄴ 내가 지금 과거를 보고 있다는 의미
- 맨 처음 커밋할 때 c.html을 소외했었다.
- 그 때로 돌아가니 물리적으로 변화했다. (c.html이 없어졌다)
다시 현재로 돌아오려면?
git checkout -f main
외부 저장소 GITHUB
- 현재 작업을 다른 PC에서 이어가려면 저장소(.git 폴더)의 커밋들을 공용서버(인터넷에 연결되어 있고 어디서든 접근 가능한 서버)에 업로드 해야 한다.
- 여기서 중요한 것은 파일들(a.html, b.html, c.html)을 업로드하는 것이 아니라는 것이다.
- 여기서 중요한 것은 .git 폴더를 업로드하는게 아니라는 것이다.
- 업르도 되는 것은 .git 폴더안의 커밋들 이다.
- 왜냐하면 커밋들만 있으면 소스코드는 얼마든지 복원해낼 수 있기 때문이다.
- 즉 중요한 것은 커밋들이다.
- 공용서버를 우리가 직접 구축해도 되지만 보통은 GITHUB 서비스를 이용한다.
- main 이라고 나오지 않는다면 git이 아닌 것.
- init을 하니 (main)이 나왔다. 즉, git 이 생성되었다.
16강
- vscode가 설치되어있다는 가정하에 현재 폴더를 기준으로 vscode를 연다.
github.com/new
- 원 저장소 생성
git remote -v
- 연결된 원격 저장소 확인하기
git remote add <저장소 파일명> <저장소 주소>
→ git remote add origin https://github.com/ej-201/2024-10-16-site2
- 보통 파일명은 origin을 사용한다.
git push origin main
- 로컬 저장소의 main 브랜치 안에 담겨있는 커밋을 원격 저장소의 main 브랜치에 업로드 (push)