문제

Windows의 MSYSGIT를 사용하여 GIT의 디렉토리 나 폴더를 무시하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

이름이 지정된 파일을 만듭니다 .gitignore 프로젝트 디렉토리에서. 파일에 디렉토리 이름을 입력하여 디렉토리를 무시합니다 (슬래시가 추가 된 상태) :

dir_to_ignore/

더 많은 정보 여기.

다른 팁

기본적으로 Windows Explorer가 표시됩니다 .gitignore 사실이면 파일 이름 일 때 .gitignore.txt

git은 사용하지 않습니다 .gitignore.txt

그리고 파일의 이름을 바꿀 수는 없습니다 .gitignore Explorer는 이름이없는 Gitignore 유형 파일을 생각하기 때문입니다.

비 명령 줄 솔루션 :

You can rename a file to ".gitignore." and it will create ".gitignore"

파일과 디렉토리를 무시하기 위해서는 두 가지 주요 방법이있는 것 같습니다.

  1. .gitignore

    • 자본 매출 .gitignore 저장소 외에는 저장소의 루트에 파일을 제출하십시오 .git 폴더 (Windows에서 확인하십시오 실제 파일 확장자를 참조하십시오 그리고 만듭니다 .gitignore. (빈 파일 확장자를 만들기 위해 끝에있는 지점과 함께))))))))))
    • 글로벌 구성 ~/.gitignore_global 그리고 달리기 git config --global core.excludesfile ~/.gitignore_global 이것을 GIT 구성에 추가하려면

    참고 : 전에 추적 된 파일은 실행을 통해 추적을받을 수 있습니다. git rm --cached filename

  2. repo 제외 - 공유 할 필요가없는 로컬 파일의 경우 파일 패턴 또는 디렉토리를 파일에 추가합니다. .git/info/exclude. 논문 규칙은 저지되지 않습니다 다른 사용자는 보이지 않습니다 더 많은 정보 여기

업데이트] 무시 된 파일 목록에 예외를 만들려면 참조하십시오. 이 질문.

Windows 탐색기에서 파일을 만드는 몇 가지 문제가있었습니다. 처음에.

해결 방법은 "edit"을 사용하여 CommandShell로 가서 새 파일을 만드는 것이 었습니다.

GIT에게 특정 파일이나 폴더를 무시하도록 지시하려면 .gitignore 파일.

그러나 Windows Explorer에서는 파일 이름을 제공해야합니다. 단지 확장자만으로 파일을 만들 수 없습니다. 트릭은 빈 텍스트 파일을 만들고 명령 프롬프트로 이동하여 파일 이름을 변경하는 것입니다. .gitignore

ren "New Text Document.txt" .gitignore

이제 좋아하는 텍스트 편집기로 파일을 열고 무시하고자하는 파일/폴더 이름을 추가하십시오. 이와 같은 와일드 카드를 사용할 수도 있습니다 *.txt

질문에 답하기를 바랍니다

내부의 파일이 아닌 폴더를 유지하려면 "*"를 컨텐츠로 폴더에 ".gitignore"파일에 넣으십시오. 이 파일은 리포지토리에서 모든 컨텐츠를 무시합니다. 하지만 .gitignore REPO에 포함됩니다.

$ git add path/to/folder/.gitignore

빈 폴더를 추가하면이 메시지를받습니다 (.gitignore는 숨겨진 파일).

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

따라서 "-f"를 사용하여 강제 추가 :

$ git add path/to/folder/.gitignore -f

창문에는 슬래시가있는 추가 캐치가 있습니다. 단일 디렉토리 제외 .gitignore ~와 함께

dir_to_exclude/

작동하지만 모든 디렉토리를 제외 할 수 있습니다

/

공백이있는 파일 이름이있을 때 문제가 발생합니다 ( my file.txt) 디렉토리에서 : Git Bash는이 공백을 백 슬래시로 탈출합니다 ( my\ file.txt) 및 창문 용 git은 구별되지 않습니다 / 그리고 \.

모든 디렉토리를 제외하려면 더 나은 사용 :

**/

두 번의 연속 Asteriscs는 디렉토리 내용을 나타냅니다.

또한 당신의 \.git\info 프로젝트 디렉토리 효과적으로 동일한 제외 파일이 있습니다. .gitignore (제 생각에는). 파일과 디렉토리를 추가하여 무시할 수 있습니다.

GIT의 전체 디렉토리를 무시하려면 가장 쉬운 방법은 단순히 "*"를 포함하는 대상 디렉토리에 .gitignore 파일을 포함시키는 것입니다.

예시적인 예,

예제 시스템

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

목표

  • /dirb /의 내용을 무시합니다.

최상위 .gitignore (/root/.gitignore)

  • 이곳은 표준 Gitignore 정보가 진행되는 곳입니다

무시 된 디렉토리 .gitignore (/root/dirb.gitignore)

  • 이 파일은 단지 '*'로 읽히고 디렉토리는 완전히 무시됩니다.

그리고 그것은 간단합니다 :)

서브 폴더를 제외 해야하는 경우 ** 와일드 카드 수준의 하위 디렉토리를 제외합니다.

**/build/output/Debug/

Windows에서 .gitignore 파일을 픽업하기 위해 git에 문제가있었습니다. $ git_dir/info/제외 파일은 항상 작동하는 것 같습니다. 그러나이 접근법의 단점은 $ git_dir 디렉토리의 파일이 체크인에 포함되지 않으므로 공유되지 않는다는 것입니다.

(ps $ git_dir는 일반적으로 .git이라는 숨겨진 폴더입니다)

내용으로 ".gitignore"파일을 만들 수 있습니다.

*
!.gitignore

그것은 나에게 효과가 있습니다.

언제 다른 모든 것은 실패합니다 파일을 편집 해보세요

/.git/info/exclude

파일 끝에 원하는 디렉토리를 추가합니다.

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

무시할 파일 및 디렉토리 목록에 폴더 "자산"과 "컴파일 된"을 추가했습니다.

문제는 작업 트리가 다음과 같습니다.

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... 이랑 .gitignore 당신은 설명합니다. 이것은 당신에게 줄 것입니다 git status 출력 :

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... 만약에 그만큼 index.html 파일은 아직 저장소에 추가되지 않았습니다. (Git은 캐시 디렉토리에 지정된 파일이 있음을 알지만 디렉토리 만보고합니다.)이 문제를 해결하려면 추가하고 커밋한지 확인하십시오. index.html 파일 :

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... 그리고 당신의 git status 그런 다음 다음과 같습니다.

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

(분명히 당신은 커밋하고 싶어합니다 .gitignore 또한이 테스트 사례에 게으르고있었습니다.)

유닉스 :

touch .gitignore

Windows :

echo > .gitignore

터미널에서 실행 된 이러한 명령은 a로 생성됩니다 .gitignore 현재 위치에 파일.

그런 다음 정보를 추가하십시오 .gitignore 파일 (예를 들어 메모장 ++ 사용)을 무시 해야하는 파일 또는 폴더. 변경 사항을 저장하십시오. 그게 다야 :)

추가 정보: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

Windows 및 Mac에서 현재 디렉토리에서 flower_data_folder라는 폴더를 무시하려면 다음을 수행 할 수 있습니다.

echo flower_data_folder >> .gitignore

데이터라는 파일 인 경우 data.txt

echo data.txt >> .gitignore

"data/passwords.txt"와 같은 경로 인 경우

echo "data/passwords.txt">> .gitignore.

비슷한 문제가 있었는데 Linux Guys와 공유 리포를 사용하여 Windows 도구 체인에서 작업하고 주어진 폴더에서 동일한 [CASE] 이름을 제외하고 파일을 만듭니다.

그 효과는 Repo를 복제 할 수 있고 체크인하면 혼란을 야기하는 수십 개의 '수정 된'파일을 즉시 가지고 있습니다.

Windows가 Case Sensitive로 설정되어 있으며 사례를 무시하지 않도록 GIT가 있지만 여전히 실패합니다 (Win32 API 호출에서는 분명히).

파일을 gitignore하는 경우 .gitignore 파일을 추적하지 않아야합니다.

그러나 나는 여기서 좋은 대답을 찾았습니다http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-tracked-files/index.html

크리스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top