카테고리 없음
CLI 실습/ Git Init,commit
김딸기*
2024. 7. 30. 18:09
CLI 실습
컴퓨터에게 내가 누구인지 물어봅니다.
코드보기
Bash
복사
whoami
루트 디렉토리로 이동한 후 현재 위치를 확인합니다.
코드보기
Bash
복사
cd pwd
실습을 위한 techit-school 디렉토리를 생성합니다.
코드보기
Bash
복사
mkdir techit-school
생성한 techit-school 디렉토리로 이동합니다.
코드보기
Bash
복사
cd techit-school
techit-school 디렉토리 하위에 다음과 같은 디렉토리와 파일을 생성합니다.

ALT
코드 보기
Bash
복사
mkdir learn-cli learn-cli/images learn-cli/js learn-cli/styles touch learn-cli/index.html learn-cli/images/logo.svg learn-cli/js/main.js learn-cli/styles/input.css
learn-cli 디렉토리로 이동합니다.
코드보기
Bash
복사
cd learn-cli
index.html 파일 내용에 <!DOCTYPE html> 추가되도록 합니다.
코드보기
Bash
복사
echo '<!DOCTYPE html>' ec index.html
images 디렉토리에 있는 logo.svg 파일에 다음 내용이 추가되도록 합니다.
Bash
복사
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"> <path fill="#F7DF1E" d="M0 0h256v256H0V0Z"> </path> <path d="m67.312 213.932l19.59-11.856c3.78 6.701 7.218 12.371 15.465 12.371c7.905 0 12.89-3.092 12.89-15.12v-81.798h24.057v82.138c0 24.917-14.606 36.259-35.916 36.259c-19.245 0-30.416-9.967-36.087-21.996m85.07-2.576l19.588-11.341c5.157 8.421 11.859 14.607 23.715 14.607c9.969 0 16.325-4.984 16.325-11.858c0-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257c0-18.044 13.747-31.792 35.228-31.792c15.294 0 26.292 5.328 34.196 19.247l-18.732 12.03c-4.125-7.389-8.591-10.31-15.465-10.31c-7.046 0-11.514 4.468-11.514 10.31c0 7.217 4.468 10.14 14.778 14.608l6.014 2.577c20.45 8.765 31.963 17.7 31.963 37.804c0 21.654-17.012 33.51-39.867 33.51c-22.339 0-36.774-10.654-43.819-24.574"> </path> </svg>
코드보기
Bash
복사
echo ' ' >> images/logo.svg
images 디렉토리에 있는 logo.svg 파일에 앞서 추가한 코드가 삽입되었는지 파일 내용을 확인합니다.
코드보기
Bash
복사
cat images/logo.svg
js 디렉토리에 있는 main.js 파일에 let me='frontend developer';이 추가되도록 합니다.
코드보기
Bash
복사
echo "let me='frontend developer';" >> js/main.js
styles 디렉토리에 있는 input.css 파일에 body { color: #333; }가 추가되도록 합니다.
코드보기
Bash
복사
echo 'body { color: #333; }' >> styles/input.css
js 디렉토리에 있는 main.js 파일을 같은 폴더에 index.js 파일로 복사 합니다.
코드보기
Bash
복사
cp js/main.js js/index.js
js 디렉토리에 파일 복사가 완료 되었다면 js 디렉토리의 모든 파일과 폴더를 자세한 정보와 함께 확인해봅니다.
코드보기
Bash
복사
ls -al js
js 디렉토리에 있는 index.js 파일의 위치를 상위 디렉토리인 learn-cli로 이동합니다.
코드보기
Bash
복사
mv js/index.js index.js
images 디렉토리를 assets 디렉토리라는 이름으로 learn-cli에 디렉토리 하위에 복사합니다.
코드보기
Bash
복사
cp -r images assets
learn-cli 디렉토리에 index.js 파일을 삭제합니다.
코드보기
Bash
복사
rm index.js
learn-cli 디렉토리 하위 디렉토리인 assets 디렉토리를 삭제합니다.
코드보기
Bash
복사
rm -r assets
지금까지 입력했던 CLI 명령어를 조회해 봅시다.
코드보기
Bash
복사
history
Git init, commit
'git init' 명령어는 프로젝트 초기화 단계에서 사용되며, 현재 디렉터리를 Git 저장소로 설정합니다.
이 명령어를 실행하면 Git은 해당 디렉터리에 ".git"이라는 숨겨진 폴더를 생성하고, 버전 관리에 필요한 여러 파일과 폴더를 포함하여 초기 설정을 합니다. 이후 해당 디렉터리 내의 파일들의 변경 사항을 추적하고, 이를 저장하고 관리할 수 있게 됩니다.
git commit 명령어는 Git에서 변경된 파일들을 저장소에 기록하는 데 사용됩니다. 이 명령어는 변경 내용을 커밋 메시지와 함께 저장소에 영구적으로 저장합니다. 커밋 메시지는 해당 변경 사항에 대한 설명을 제공하여 나중에 쉽게 찾고 이해할 수 있도록 도와줍니다.
techit-school 디렉토리에 learn-commit 디렉토리를 생성하고 해당 디렉토리로 이동합니다.
코드보기
Bash
복사
cd cd techit-school mkdir learn-commit cd learn-commit
learn-commit 디렉토리를 Git 저장소로 초기화 합니다.
코드보기
Bash
복사
git init
learn-commit 디렉토리에 README.md 파일을 생성하고 ‘# Git을 배워봅시다’라고 내용을 입력합니다.
코드보기
Bash
복사
echo '# Git을 배워봅시다.' > README.md
현재 Git 저장소의 상태를 조회합니다.
코드보기
Bash
복사
git status
Untracked files에 README.md가 보이면 해당 파일이 있는 영역을 Staging Area로 변경합니다.
코드보기
Bash
복사
git add README.md
다시 Git 저장소의 상태를 조회합니다.
코드보기
Bash
복사
git status
Staging Area에 있는 README.md 파일을 Working Directory로 이동합니다.
코드보기
Bash
복사
git rm --cached README.md
rm ‘REAME.md’ 메시지가 나오면 다시 Git 저장소의 상태를 조회합니다.
코드보기
Bash
복사
git status
Working Directory에 있는 README.md 파일에 ‘Git 저장소 초기화 하기’ 내용을 추가합니다.
코드보기
Bash
복사
echo "\nGit 저장소 초기화하기" >> README.md
README.md 파일의 내용을 조회합니다.
코드보기
Bash
복사
cat README.md
다시 Git 저장소의 상태를 조회합니다.
코드보기
Bash
복사
git status
Working Directory에서 수정 된 README.md 파일을 Staging Area로 이동합니다.
코드보기
Bash
복사
git add README.md
커밋 메시지는 ‘분산형 버전관리 시스템 Git’ 이라고 입력하고 커밋을 생성합니다.
코드보기
Bash
복사
git commit -m '분산형 버전관리 시스템 Git'
커밋 이 완료되면 최초의 root-commit이 만들어 집니다. 해당 커밋을 조회해 봅시다.
코드보기
Bash
복사
git log
REAME.md 파일을 만들고 커밋을 생성한 것처럼 index.html과 style.css 파일을 만들고 각각 두 번째와 세 번째 커밋을 생성합니다.
index.html
파일 내용 : <!DOCTYPE html>
커밋 메시지 : DTD 선언
style.css
파일 내용 : * { box-sizing: border-box }
커밋 메시지 : 모든 요소에 기본 박스 사이징 설정
코드보기
Bash
복사
echo '<!DOCTYPE html>' > index.html git add index.html git commit -m "DTD 선언"
Bash
복사
echo '* { box-sizing: border-box }' > style.css git add style.css git commit -m "모든 요소에 기본 박스 사이징 설정"
커밋 로그를 조회합니다. 이 때 로그는 한줄 압축하여 조회해 봅시다.
코드보기
Bash
복사
git log --oneline
README.md, index.html, style.css 파일의 내용을 다음과 같이 수정하고 각각 커밋을 생성합니다.
README.md
파일 내용 : 작업 영역, 스테이징 영역 그리고 커밋
커밋 메시지 : Git의 세가지 상태
index.html
파일 내용 : <html> </html>
커밋 메시지 : HTML 기본 구조 마크업
style.css
파일 내용 : body { color: #121212; }
커밋 메시지 : 기본 전경색 지정
코드보기
Bash
복사
echo '\n작업 영역, 스테이징 영역 그리고 커밋' >> README.md git add README.md git commit -m "Git의 세가지 상태"
Bash
복사
echo '\n<html> </html>' >> index.html git add index.html git commit -m "HTML 기본 구조 마크업"
Bash
복사
echo '\nbody { color: #121212; }' >> style.css git add style.css git commit -m "기본 전경색 지정"
커밋 로그를 조회합니다. 이 때 로그는 한줄 압축과 그래프 옵션을 추가하여 조회해 봅시다.
코드보기
Bash
복사
git log --oneline --graph
README.md 파일의 내용을 다음과 같이 수정하고 Staging Area로 해당 파일을 이동합니다.
README.md
파일 내용 : Resotre, Discard로수정 내용 되돌리기
코드보기
Bash
복사
echo '\nResotre, Discard로 수정 내용 되돌리기' >> README.md git add README.md
현재 Git 저장소의 상태를 조회합니다.
코드보기
Bash
복사
git status
modified된 README.md 파일을 Working Directory로 이동한 후 수정 내용을 되돌립니다.
(주의 : 커밋하지 않고 Working Directory 상태에서 수정한 내용을 되돌리면 복구할 수 없습니다.)
코드보기
Bash
복사
git restore --staged README.md git restore README.md
README.md 파일의 내용이 수정 전으로 되돌아갔는지 조회합니다.
코드보기
Bash
복사
cat README.md
코드보기
Bash
복사
git restore README.md