[오픈소스 설계][git][linux]

밥슌·2024년 9월 4일

🐈‍⬛github

목록 보기
8/12

바보같은 vi를 위한 간단 개념
vim {파일이름} //파일이 존재한다면 편집기가 열림, 없다면 생성됨

---편집기가 열린 뒤---

i //입력모드 진입
esc누른 뒤 :wq // 편집기 나가기

vim과 cat의 차이는?

vim: 강력한 텍스트 편집기로 복잡한 편집 작업을 처리할 수 있으며, 편집 중에도 다양한 명령을 사용할 수 있습니다.
cat: 간단히 파일을 생성하고 내용을 추가할 때 사용되며, 빠르게 파일을 작성할 때 유용하지만, 실시간 편집 기능은 제한적입니다.

Linux 설치

경로: $제어판/프로그램/ Windows 기능켜기 및 끄기

windows 하이퍼바이저 플랫폼
가상 머신 플랫폼
Hyper-V
Linux용 Windows 하위 시스템

체크 후 재부팅


Microsoft store에서 ubuntu24.04 LTS 설치

Enter new UNIX username: psw
password: 030101

프로그래밍 도구 설치

vim편집기와 gcc 컴파일러 설치를 위해

sudo apt update 
sudo apt install gcc
sudo apt install vim

위 명령어를 터미널 창에 입력


여기서부터 2주차

📍깃 왜 사용할까?

깃은 분산 저장 관리 시스템이다.
그렇담 분산 저장 관리 시스템의 이점은?

case1) 코드가 돌아가는 내 컴퓨터가 망가졌다고 하자
-> 코드 유실

case2) 깃에 버전 관리를 하면서 저장을 했었다면?
내 컴퓨터가 망가져도 깃에 백업(=관리)를 했기때문에 깃에서 가져오면 됨
+협업도 가능


깃 개념을 알아보자

※ git bash를 사용한거라 vscode 터미널에서 구동되는 명령어랑 약간 다를 수도!
오늘 수업내용 축약본

💡git에서의 파일 상태는 어떻게 표현 될까?


[참고] 놀랍게도 위의 사진과 아래 사진은 동일한 사진이다
working directory(포징)-> staging area(스냅샷)-> .git directory(=repo)(앨범)

💡파일을 사용하다보면 수정하고 저장하는 과정은 어떻게 되는 걸까?


📍깃 실습

"좋은 프로젝트를 깃헙에서 발견!-> 응용해서 사용하고 싶다..."

[git bash]

  1. myrepo 생성
  2. 내 로컬 저장소(myrepo)로 clone
git colne {클론할 레포 주소}
$git colne https://github.com/parksiwoon/NewProject.git
  1. 파일 생성
cat > {새로 생성할 파일 이름}
$ cat > newfile
test //test는 그냥 새로 생성한 파일 이름 내부에 들어갈 코드를 적으면 된다!
//다 작성했으면 crtl+D
$ git status //작업 디렉터리의 상태 확인(지금 파일이 어디에 있고, 어떤 상태인지
//이 상태에서 상태를 확인하면 추적이 안되는 것으로 뜸.

3-1. 파일 커밋하기

git add {파일명} //working 상태였던 파일을 staged 상태로 전환합니다
//이 상태에서 git status하면 추적이 되는 것으로 뜸
$ git commit
  • git commit을 입력하면 창이 뜨는데
    • :i //삽입
      첫번째 줄-> 간략한 커밋 메시지
      세번째 줄부터-> 상세한 커밋 메시지
    • esc누른후, :wq //창 나가기

[결과]

  1. push로 git hub에 올리기
git push {리모트 저장소 이름} {브랜치 이름}
$ git push origin master //로컬의 스냅샷을 원격으로 업데이트

[linux]

  1. 리눅스에서 git 설치
$ sudo apt install git
  1. 설정(사용자, 이메일 주소, 편집기 설정)

    +최근 github(master->main으로 변경됨)에 맞춰 디폴드 브런치 변경 희망시
$ git config --global init.defaultBranch main
  1. 디렉토리를 git 저장소로 만들기
mkdir {파일명}
$ mkdir first_project
$ cd first_project/
$ git init //git 초기화

여기서 부터 실습


1. cat >cat 차이:

  • cat > filename: 이 명령어는 새로운 파일을 생성하고 입력을 받아 그 내용을 파일에 저장하는 기능입니다. 기존에 같은 이름의 파일이 있으면 그 내용을 덮어씁니다.
    • 예시: cat > README를 입력한 후, 내용을 입력하고 Ctrl + D로 저장을 종료하면 README 파일이 생성되거나 덮어씌워집니다.
  • cat filename: 이 명령어는 파일의 내용을 출력하는 역할을 합니다. 파일을 생성하지 않고, 단순히 파일의 내용을 터미널에서 확인할 수 있습니다.

2. echo "아무거나" >> README 명령어 설명:

  • echo "아무거나" >> README: 이 명령어는 "아무거나"라는 문자열을 README 파일의 끝에 추가합니다. 기존 파일을 덮어쓰지 않고, 그 뒤에 내용을 붙이는 역할을 합니다.
  • 이 작업을 수행하면 Git에서 해당 파일은 modified 상태로 인식됩니다. 즉, 변경된 상태로 트래킹되지만, 아직 staged 상태로는 올라가지 않습니다.
    • git status 명령어로 확인하면, README 파일이 modified로 표시됩니다.
  • 이 상태는 git add README 명령어를 실행하기 전까지 유지됩니다. git add를 해야만 staged 상태로 올라가고, 이후에 git commit으로 커밋할 수 있습니다.

따라서, echo 명령어로 파일을 수정하면 Git에서는 자동으로 파일을 수정된(modified) 상태로 인식하고, git add 명령어로 그 파일을 staging area에 올리기 전까지는 modified 상태로 남아있습니다.

➕메세지 해석) Changes to be committed: 커밋을 기다리고 있는 상태 (staged).
Changes not staged for commit: 로컬에서 파일을 추가로 수정했지만, 아직 git add를 하지 않은 상태 (modified).


📍실습 과제

https://github.com/parksiwoon/NewProject.git


profile
마트 시식코너같은 저의 벨로그에 어서오세요.

0개의 댓글