Next.js

GIT/GITHUB

thal11 2024. 10. 16. 03:03

https://www.slog.gg/p/13751#f

 

GIT/GITHUB

공개여부 제목 내용 댓글(0) GIT/GITHUB 에 대한 댓글 loading...

www.slog.gg

 

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)