git status와 git add

조 은길·2021년 2월 21일
2
post-thumbnail

오늘부터 Git에서 가장 많이 쓰는 코어 명령어들에 대해서 정리해보자.

강사 분께서, 코어 명령어 외에 다른 복잡한 git 명령어를 사용한다면, 회사의 소스 관리가 엉망인 거라고 강조하셨다.
ex) git reflog => 구지 이런 명령어를 써야만 되는 회사의 소스 관리 상태가 나온다!!

1) git init

-> git에서 이 파일들을 관리하기 시작!!

ex) C:\user\폴더> git init
=> 폴더라는 디렉토리에서 이 명령어를 치면, 이 폴더를 git이 관리하기 시작한다.

바로 다음에 이와 같은 명령어가 뜬다.
Initialized empty Git repository in ...

이후에 terminal에 다음 명령어를 쳐보면, 내가 무슨 짓을 했는지 바로 확인이 가능하다.

2) git status

-> 현재 git이 관리하는 파일들의 상태를 확인할 수 있다.
본인이 git으로 특정 명령어를 실행했다면, 꼭 git status로 확인하는 습관을 들이자!!

참고로, 추가적인 한글 처리없이 파일이름이나 디렉토리에 한글이 있으면, 숫자로 처리가 된다. 가능하면, 영어로 표기하자!!

git init 이후에 git status를 쳐 본 결과 폴더 안에 있는 파일들이 전부 빨간색으로 untracked files들이라고 뜬다.
untracked file이란 아직 git이 관리하지 않는 파일들이라는 뜻이다.

혹자는 폴더에다가 git init을 해줬는데, 왜 내부의 파일들은 git이 관리를 안 하는 거냐고 생각하실 수도 있다. 그러나, 그럴만한 이유가 있다. git은 아직 폴더 내부에 어떤 파일들을 관리해야 되는지 모른다. 그리고 자동으로 폴더 내의 모든 파일들을 관리해서도 안된다!!

git이 관리하는 것의 단점은 한 번 git이 관리를 시작하는 파일들은 절대로 잊어버리지 않는다. 다시 말해, git은 사용자가 기억하지 않았으면 하는 파일들까지 다 기억한다.

ex)
유저가 비밀번호를 입력한 파일을 실수로 올렸다면, git은 절대로 그 파일을 잊지 않는다. 그러면, 나중에 해커가 그 기록을 뒤져서 내가 실수로 쳤던 비밀번호를 git을 사용해서 찾을 수가 있다.
즉, 과거의 모든 행적들을 다 찾을 수 있기 때문에, git을 사용할 때는 보안성이 요구되는 파일들은 git으로 관리하지 않는 게 좋다.

Git을 처음 사용하는 유저라면, 보안이 요구되는 파일들은 절대로 Git에 올리지 말자!!

  • 아 물론 자신의 git의 고수라면, 예외다.

다시 돌아와서, 이러한 이유들로 git init라는 명령어가 폴더 안의 어떤 파일들도 관리하지 않는다. 사용자가 수동으로 지정해줘야 한다.

3. git add

(띄어쓰기 중요)

  • .idea 는 숨김 파일이므로 무시해도 된다.

예를 들어, 폴더 안에 code1.txt라는 파일을 git이 관리하게 하고 싶다면, git add code1.txt 라는 명령어를 실행해야한다.

다만, git add 실행 후에 warning 같은게 뜰 수도 있는데, warning은 해결하면 좋지만, 안 해도 상관은 없다. 즉, 걍 무시해도 된다.
하지만, error가 뜬다면, 얘기가 다르다. 반드시!! 문제를 해결하고 넘어가야 한다.

git add code1.txt
이후에 add가 제대로 됐는지 확인해보려면, git status를 통해 확인해보자!!

그러면,

code1.txt가 초록색으로 뜨는 것을 확인할 수있다. 이제 이 파일은 git이 관리하기 시작한다.

이렇게 초록색으로 파일이 떠서 git이 관리하기 시작하는 단계를 staged라고 부른다.

  1. git rm --cached <파일 이름>
    그런데, 이 초록색 파일을 다시 (git이 관리하지 않는 파일) = (unstaged) = (untracked file)로 만들고 싶다면,

-> git rm --cached code1.txt 을 실행해주면 된다.

이후에 git status로 확인해보면,

code1.txt가 다시 untracked file로 돌아온 것을 확인해볼 수 있다.

만약, 폴더 안에 있는 파일들을 일일히 add 해주기 귀찮다면, git add . 를 써볼 수도있다.

  1. git add . 혹은 git add
    왠만하면 git add만으로 되는데, termial 환경에 따라서 git add .을 요구할 때도 있다. 그냥 .을 붙여주면 언제든 OK!!

이후에 git status로 확인해보면, 모든 파일들이 stage 단계로 간 것을 확인할 수 있다.

여기서 idea라는 숨김 파일 폴더는 저희가 git으로 관리할 필요가 없는 부분입니다. 그럼 다시 unstaged 상태로 만들어줘야겠죠??

그럼 일일히 idea 내부의 폴더들을 git rm --cached 파일명 해줘야 될까요??

폴더 전체를 unstaged 단계로 보내는 명령어가 있습니다.

-> git rm -rf .idea

이후에 git status로 확인해보니

idea 폴더 전체가 unstaged로 바뀌었네요!! 짝짝짝!!!

여기까지 git status와 git add 편이었습니다.


자료 출처 및 참고 자료

https://www.zerocho.com/category/JavaScript

https://www.youtube.com/watch?v=thJ-WQD9nWg

https://www.geeksforgeeks.org/useful-git-commands-and-basic-concepts/

profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글