git에서 gitignore 명령을 사용하는 방법


119

나는 처음으로 자식에서 일하고 있습니다. 내 브랜치를 github에 푸시했고 모든 라이브러리와 문서를 github에 푸시했습니다. 이제 내가 뭘 할 수 있고 어떻게 gitignore 명령을 사용하여 같은 실수를 다시 피할 수 있습니까?


1
.gitignore는 git 루트 디렉토리에있는 파일입니다. 무시할 파일의 이름 패턴을 추가하면 파일이 자동으로 무시됩니다.
LonelyWebCrawler

나는 우분투에 있습니다. 당신은 자식 루트 디렉토리의 경로라고시겠습니까
user1559230

2
사용했던 디렉토리 git init입니다. .git디렉토리가 있습니다.
LonelyWebCrawler

2
kwno gitignore를 사용하지 않는 방법 사람들을 위해 -로 이동 gitignore.io 당신은 당신이 사용하는 모든 도구를 입력 할 수 있습니다 (심포니, CakePHP의는 ZendFramework은, 워드 프레스는 툴툴 거리는 소리는, 숭고한 텍스트, NetBeans는 등, 당신은 드릴 수 ...) 그러면 git ignore 파일이 생성됩니다. gitignore를 사용하는 방법을 모른다면 배우는 가장 좋은 방법은 gitignore.io에서 생성 한 것과 같은 좋은 사용 사례 예제를 보는 것입니다. cmd 줄에서 사용하려면 (괴짜 방법) ) 튜토리얼 참조 : vimeo.com/70609819
DevWL

답변:


162

따라서 귀하가 말한 내용에 따라 이러한 파일은 삭제하고 싶지는 않지만 github. 프로젝트가 폴더 your_project와 doc 디렉토리 에 있다고 가정 해 봅시다 : your_project/doc.

  1. 프로젝트 디렉토리에서 제거합니다 (실제로 삭제하지 않음). git rm --cached doc/*
  2. 아직 가지고 있지 않다면 .gitignore프로젝트 폴더 안에 바로 만들 수 있습니다 : project/.gitignore.
  3. doc/*.gitignore에 넣어
  4. 커밋 할 파일을 준비합니다. git add project/.gitignore
  5. 커밋 : git commit -m "message".
  6. 변경 사항을로 푸시합니다 github.

.gitignore 파일을 작성하는 방법을 알려주세요. 즉, .gitignore 파일 내에서 무시할 폴더 및 파일의 경로를 작성하는 방법입니다. 감사합니다
user1559230

답변 해 주셔서 감사합니다. 전에 내가 자식 추가 -A 실행했다 커밋
user1559230을

4
안녕하세요, gitignore는 일반 텍스트 파일입니다. 실제로 .gitignore (DOTgitignore)입니다. git이 무시할 파일 / 파일 형식의 이름을 한 줄에 하나씩 입력하십시오. 예 : sujee.net/tech/articles/gitignore
u19964


42

.gitignore 파일이 없으면 먼저 다음을 사용하십시오.

touch .gitignore

그런 다음이 명령을 사용하여 gitignore 파일에 줄을 추가하십시오.

echo 'application/cache' >> .gitignore

새 줄에주의


touch먼저 파일이 필요하지 않습니다 . >>동의어입니다 >파일이 이미 존재하지 않는 경우. echo출력 끝에 개행을 추가합니다. 당신과 함께 그것을 중지 할 수 있습니다 -n. 다양한 무시가 필요한 경우 다양한 에코를 수행하거나 -e다음과 같이을 사용 하십시오 echo -e "**/cache/\n**.pyc" >> .gitignore.. 이중 별표는 폴더로 파고있는 모든 파일도 재귀 적으로 일치시킵니다. /만일을 대비하여 폴더 끝에 사용하십시오 .
mazunki

1
@Andrew tl; dr : echo "file_to_be_ignored" >> .gitignore다른 작업을 수행 할 필요없이 무시 된 각 파일을으로 추가 합니다. 와 폴더 이름 끝 /등을 echo "**/modules/" >> .gitignore.
mazunki

내 댓글이 삭제 된 이유
Andrew

12

git ignore는 git의 규칙입니다. 의 이름으로 파일을 설정하면 .gitignore 해당 디렉토리 및 파일에 포함 된 패턴과 일치하는 더 깊은 디렉토리의 파일이 무시됩니다. 가장 일반적인 용도는 최상위 수준에서 이와 같은 파일 하나를 갖는 것입니다. 그러나 더 많은 패턴을 무시하거나 해당 디렉토리 및 이후에 더 깊은 패턴에 대해 무시하는 것을 중지하기 위해 디렉토리 구조에 더 깊은 다른 것을 추가 할 수 있습니다.

마찬가지로,로 시작하는 패턴을 지정하여 더 깊은 구조 또는 특정 하위 집합에서 특정 파일을 "무시"할 수 있습니다 !. 예 :

*.log !important.log

모든 로그 파일을 무시하지만 중요한 파일을 추적합니다.

무시하려는 파일을 추적하는 경우 해당 파일을 삭제하고 .gitignore 파일에 패턴을 추가하고 모든 변경 사항을 추가하십시오.

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern>

# stage all the changes git commit
git add -A 

지금부터 저장소는 추적하지 않습니다.

기록을 정리하려면 다음을 수행 할 수 있습니다.

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

그런 다음 각 커밋을 e또는 로 표시하십시오 edit. 계획을 저장하십시오. 이제 git은 e로 표시된 각 커밋에서 중지 된 기록을 재생합니다. 여기에서 원하지 않는 파일을 삭제 git add -A한 다음 git rebase --continue완료 될 때까지 삭제합니다 . 당신의 역사는 깨끗해질 것입니다. 강제로 푸시해야하고 아직 푸시하지 않은 항목을 리베이스해야하므로 동료에게 말해야합니다.


8

git 루트 디렉토리에 .gitignore. 명령이 아니라 파일입니다. 무시할 파일의 이름을 삽입하기 만하면 자동으로 무시됩니다. 예를 들어으로 끝나는 모든 emacs 자동 저장 파일을 무시 ~하려면 다음 줄을 추가 할 수 있습니다.

*~

브랜치에서 원하지 않는 파일을 제거하려면 git add -A" 더 이상 작업 트리에없는 파일을 제거 "하는을 사용할 수 있습니다 .

참고 : 내가 "git root directory"라고 부르는 것은 단순히 git init처음 사용한 디렉토리입니다 . 또한 .git디렉토리를 찾을 수 있습니다 .


내가 원하지 않는 것을 이미 밀려 파일에 어떤 일이 일어날 것입니다
user1559230

4

.gitignore 파일이없는 경우. 다음 방법으로 새 ​​것을 만들 수 있습니다.

touch .gitignore

.gitignore 파일에 아래 명령을 입력하여 폴더를 제외 할 수 있습니다.

/folderName

이 파일을 git 저장소로 푸시하여 새로운 사람이 프로젝트를 복제 할 때 동일한 파일을 다시 추가 할 필요가 없도록합니다.


2

gitignore git을 사용하는 방법에는 여러 가지가 있습니다.

  • 특정 파일 이름으로 지정합니다. 예를 들어
    readme.txt라는 파일을 무시 하려면 .gitignore 파일에 readme.txt를 작성하면됩니다.
  • 파일 확장자의 이름을 쓸 수도 있습니다. 예를 들어
    모든 .txt 파일 을 무시 하려면 * .txt를 작성하십시오.
  • 전체 폴더를 무시할 수도 있습니다. 예를 들어
    test라는 폴더 를 무시하려고합니다 . 그런 다음 파일에 test /를 작성하십시오.

.gitignore 파일을 만들고 샘플 gitignore 파일을 무시하고 싶은 내용을 작성하십시오.

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

git 문서 gitignore 에서 더 많은 것을 찾을 수 있습니다.


1

내 Mac 에서이 파일을 찾았습니다. .gitignore_global .. 그것은 내 홈 디렉토리에 숨겨져 있으므로 ls -altr확인하십시오.

나는 자식이 무시하기를 원하는 이클립스 파일을 추가했습니다. 내용은 다음과 같습니다.

 *~
.DS_Store
.project
.settings
.classpath
.metadata

.gitignore 파일을 내 프로젝트 폴더에 넣으면 내 이클립스 프로젝트가 로컬로 엉망이되었습니다. 왜 그런 일이 일어날 수 있고 어떻게 방지 할 수 있는지 알고 있습니까 ?? 지금은 .gitignore에서 멀리 떨어져 있습니다.
JesseBoyd

더 이상 이클립스를 사용하지 않습니다. Inteilji now
j2emanue
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.