❇️ 요약
- Git Status
- Git Add
- Git Commit
- Git Ignore
- Git Rm
- Git Mv
Untracked(git에 등록되지 않은 상태) vs Tracked(등록된 상태)Staged : Commit을 할 수 있는 후보 상태Committed(Unmodified) : 버전이 매겨진 상태Modified(UnStaged) : 버전이 매겨진 파일이 수정된 상태, Staged 도, Committed 도 아닌 상태상태 변화
Add File: Tracked 상태로 들어옴, 버전을 매기는 대상으로 인식 (Untracked→Staged)
Commit: 버전을 매김 (Staged→Committed)
Edit: 작업하면서 파일 수정 (Committed→Modified)
Stage File for Commit: 버전을 다시 매겨주기 위해 버전을 매길 수 있는Staged상태로 전환 (Modified→Staged)
Delete: 관리 하지 않을 파일을 Git이 관리하고 있는Tracked상태에서Untracked로 전환해줘야함 /
- 폴더에 삭제하는 것과 다름! 깃에서 지워야함

git status
Modified 상태의 파일을 Staged 상태로 변경git add <file_name>
-m <commit message>와 함께 줘야함 ⭐⭐⭐⭐⭐Modified 상태의 파일을 Staged 상태로 변경-a 옵션으로 Staged 상태를 생략 가능 (Modified 상태에서 바로 Commit 상태로 변경)git commit -m <commit_message>
git commit -a -m <commit_message>
# 확장자가 .a인 파일 무시
*.a
# 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음
!lib.a
# 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디텍토리에 있는 파일은 무시하지 않음
# 경로 상에 있는 TODO만 무시
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시
bluid/
# doc/notets.txt 파일은 무시하고 doc/server/arch.txt파일은 무시하지 않음
# doc 바로 밑에 있는 txt는 무시하지만 다른 경로의 txt는 무시하지 않음
doc/*.txt
# doc 디렉토리 아래의 모든 .pdf 파일을 무시
doc/**/*.pdf
git rm <file_name>
git mv <old_name> <new_name>
Git MV와 같은 동작
- 파일을 복사하고, 원본 파일을 삭제한 뒤 Git Add하는 동작과 같다
cp <old_name> <new_name> git rm <old_name> git add <new_name>
mkdir HelloGit
cd HelloGit
git init

git status

touch test.txt
git status

git add * 하면 올리고싶은 파일 뿐 아니라 안보이는 쓰레기 파일들까지 올라갈 수 있으니 조심!git add test.txt
git status

git commit -m "first commit"
git status

사용한 문법
cat <file_name>: file의 내용 출력cat > <file_name>: 다음 내용으로 덮어 써라cat >> <file_name>: 덮어쓰지 말고 파일 내용 아랫줄에 추가해라
Modified 상태로 전환cat > test.txt
Hello, Git!
# Ctrl + D 눌러서 입력 저장
git status

git add test.txt
git commit -m "second commit"
cat >> test.txt
This is commit!
cat test.txt

-a 사용 - Staging Area 생략 가능-a 옵션git commit -a -m "third commit"

touch .gitignore
git add .gitignore
git status

cat > .gitignore
*.csv
git status

git commit -m "make .gitignore file"
git status

git commit -a -m "add *.csv to .gitignore"
git status

touch data.csv
ls
git status


git rm test.txt
ls
git status

git commit -m "remove test.txt"
git status

touch test.txt
git add test.txt
git commit -m "remove test2"
git status

git rm 이 아니라 터미널 명령어 rmrm test.txt
git status

git rm 하여 Git에도 지워주면 된다git rm test.txt
git status

git commit -m "rm test succed"
git status

test2.txt
This is my test.
git add test2.txt
git commit -m "add test2.txt"
git status

git mv test2.txt test.txt
ls
git status

git commit -m "rename test2 to test"
git status

git mv가 아닌 터미널 명령어 mv 사용mkdir src
mv test.txt src/
ls
cd src
ls


git rm test.txt
git status

src/test.txt : 경로 포함 해당 파일src/test.txt 같이 파일 경로로 파일 단위 관리git add src/test.txt
git status

git commit -m "rename test.txt to src/test.txt"
git status
