이상학의 개발블로그

[Git/GitHub] git add * VS git add . 비교와 .gitignore로 파일 무시하기 본문

Dev Tools

[Git/GitHub] git add * VS git add . 비교와 .gitignore로 파일 무시하기

학학이 2016. 5. 5. 23:39


git add *  VS git add .

git을 로컬에서 사용할 때 터미널을 이용해서 사용한다.

보통

  1. $ git init
  2. $ cat > test.txt
  3. $ git add test.txt
  4. $ git commit -m " add test.txt "

이런식으로 사용한다.

그러나 파일이 여러개일 경우 

$ git add * 

로 모든 파일을 staged 상태로 만든다.

그런데 가끔 $ git add *을 하면 다음과 같은 상황이 나올때가 있다.


git add * The following paths are ignored by one of your .gitignore files: git-add/ignore.txt
Use -f if you really want to add them.

이 말은 .gitignore 에 현재 staged로 변경할 파일의 이름이 있다는 것이다

.gitignore로 git에 안올린다고 했는데 git add *로 다 올린다고 하니 

다시 확인 하라는 말이다. 


$ git add .   은 .gitignore에 있는 파일은 제외하고 staged에 올린다.



$ git add .

을 사용해서 staged에 올리자!



.gitignore 사용법

보통 로그파일, 빌드파일, 암호등 민감한 내용은 GutHub에 올리지 않아야한다.

이럴때 사용하는 것이 .gitignore 이다

GitHub에서 Repo를 새로 만들 때 각 프로젝트 언어별로 생성해주는 .gitignore을 이용하면 더 쉽다.


만약 이것을 이용하지 않았더라도 '.gitignore'라는 이름의 파일 만들면 된다( .gitignore이다. 점은 오타가 아님)

.gitignore 는 표준 Glob를 사용하고 몇가지 패턴이 있다.

# : 주석 
    # 이 줄은 적용되지 않는다.

* : 와일드 카드
    *.txt : txt파일은 모두 무시

! : 무시를 무시
    !go.txt : *.txt로 txt 파일은 무시하기로 했지만, 이 규칙을 무시하고 go.txt는 staged에 올린다.

/ : path 표시
    /module : 루트 디렉터리 아래 /module 파일을 무시. 그러나, user/module은 무시되지 않는다.
    js/ : js 디렉토리 아래 모든 파일 무시
    css/*.txt : css 디렉토리 아래 확장자가 txt를 모두 무시 


Comments