6/15 Git 사용문법

Yoochang Sung·2024년 6월 16일

Git

목록 보기
5/13

순환

ADD file 해줘야 한다 -> Git이 관리하기 시작하도록. 버전을 매기는 대상으로 인식.

Staged 상태가 된다 -> commit할 상태가 되는 것.

Git에서 commit은 코드 변경 사항을 저장소에 영구적으로 기록하는 행위.

Commit을 하는 순간 committed 상태가 됨(버전이 매겨져 있는 상태)

버전을 매긴 후에도 작업을 해야 함 -> modified(unstaged) 상태.

수정하여(edit) 수정된 상태이기 때문에 committed도 아니고 staged 상태도 아님.

버전을 매길 수 있는 staged 상태로 다시 만들어줘야 한다.

그 후에 commit 하여 committed 상태로 만드는 반복 형태.

관리하지 않으려면 committed 상태에서 git에서 DELETE하여 untrcked 상태로 돌려보냄.

Git status

  • working directory와 staging area의 상태를 표시(commit 시킬 것이 있는지, modify 중인 것이 있는지 등 확인 가능)
  • 파일의 상태를 확인할 때 사용
  • 수시로 확인해야 한다! 동작을 한 번 할 때 마다 확인하는 것을 권장
  • **상태의 변화에 집중해보기

Git ADD

  • git add<파일명>
  • working directory에서 생성된 파일을 staging area(index)에 추가
  • untracked 상태를 tracked 상태로 옮길 때
  • Modified 상태 파일을 다시 staged 상태로 변경
  • 즉, commit할 상태로 옮기는 것!
  • git add *로 모든 것을 add할 수도 있으나 매우 매우 매우 조심해야 한다

실습

changes to be committed 확인할 수 있다.

Git commit

  • git commit-m<"커밋 메시지"> 매우 중요
  • git commit -a-m<"커밋 메시지"> add와 동시에 커밋할 수 있다
  • 커밋 메시지 엄청 중요! 커밋을 하는 순간 버전이 매겨짐.(커밋 메시지로 버전을 확인할 수 있기 때문에 협업 시 상당히 중요! 되도록 영문으로)
  • working directory에서 생성된 파일을 staging area(index)에 추가
  • modified 상태의 파일을 staged 상태로 변경
  • **a 옵션으로 staged 상태를 생략 가능(Modified 상태에서 바로 committed 상태로 변경)

실습

파일 수정

  • cat > test.txt
  • 꺽쇠 없이 cat test.txt는 보통은 파일에 있는 내용을 출력하는 데 사용
  • 꺽쇠가 들어가면 아래 타이핑한 내용으로 파일을 덮어써라! 의미
  • 꺽쇠 두 개면 덮어쓰기가 아닌 아랫줄에 추가
  • cat > test.txt 쓰고 엔터 -> 쓰고 싶은 텍스트를 입력하고 컨트롤 + D로 저장
  • Committed 상태에서 수정하면 Modified가 됨(unstaged 상태)
  • git status를 보면 staged 안된 상태가 있다고 나옴
  • commit할 거면 add해줘야 한다.

Git ignore

  • Git에서 무시해야 하는 파일 패턴을 관리

  • 확장자가 .a인 파일 무시 -> *.a

  • 윗 라인에서 확장자가 .a 인 파일은 무시하게 했지만 lib.a는 무시하지 않음 -> !lib.a

  • 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시 X -> /TODO 경로

  • build/ 디렉토리에 있는 모든 파일은 무시 -> build/

  • doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음(다른 경로에 있는 파일은 무시하지 않도록) -> doc/*.txt (경로를 픽스해서 지정)

  • doc 디렉토리 아래 모든 .pdf 파일 무시(doc디렉토리 하위 폴더 포함 모든 확장자 무시) -> doc/*/.pdf

  • Git에서는 파일을 올리지 않음

실습


statged 된 친구들 commited로 바꾸고, 남아있는 unstaged를 'staged로 바꾸고' commit.
위에서는 'staged로 바꾸고'를 -a -m 으로 생략

테스트 결과

Git RM

  • git rm<파일명>
  • Git이 add한 순간부터 관리 대상자로 인식하고 있기 때문에 git에서 지워줘야 함
  • git에서 관리하는 파일 삭제(untracked 상태로)
  • staging area의 파일을 삭제하고 commit
  • working directory에서도 삭제됨

  • 만약 파일을 먼저 지우면 (rm 파일), git rm 으로 한 번 더 지우면 된다

Git MV(git move)

  • git mv<원래 이름><새이름>
  • git에서 파일 이름 변경 시 사용
  • 파일 이름에는 경로가 포함되어 있어 이름 자체를 변경해야 한다.

실습

  • test2.txt를 test.txt 로 변경(git mv test2.txt test.txt)

  • 경로만 바꾸기(text.txt를 HelloGit 폴더에 하위폴더인 src로)

  • 똑같은 이름이어도 경로가 다르면 새로운 파일로 인식(기존 있던 파일은 삭제되고, 새로운 폴더로 이동한 파일은 등록되지 않은 새로운 파일 취급) -> rm으로 실제로 git에서도 지우면 됨.


Git MV와 같은 동작

  • cp<본래 이름><새 이름>
  • git rm<본래 이름>
  • git add<새 이름>
  • 파일을 복사하고, 원본 파일 삭제 후 git add
profile
Yoochang Sung

0개의 댓글