Programing

Windows에서 Git 저장소의 디렉토리 무시

lottogame 2020. 9. 28. 07:51
반응형

Windows에서 Git 저장소의 디렉토리 무시


Windows에서 msysgit을 사용하여 Git의 디렉토리 또는 폴더를 무시하려면 어떻게해야합니까?


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

dir_to_ignore/

여기에 더 많은 정보가 있습니다 .


기본적으로 Windows 탐색기는 .gitignore실제로 파일 이름이.gitignore.txt

힘내 사용하지 않습니다 .gitignore.txt

.gitignore탐색기는 이름이없는 gitignore 유형의 파일이라고 생각 하기 때문에 파일 이름을로 바꿀 수 없습니다 .

비 명령 줄 솔루션 :

파일 이름을 ".gitignore"로 바꿀 수 있습니다 . 그러면 ".gitignore" 가 생성됩니다.

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

  1. .gitignore

    • 폴더 .gitignore외에 리포지토리의 루트 파일 배치 .git(Windows 에서는 실제 파일 확장자가 표시 되는지 확인한 다음 .gitignore.(끝에서 빈 파일 확장자를 만들기 위해) 확인)
    • 전역 구성을 ~/.gitignore_global만들고 실행 git config --global core.excludesfile ~/.gitignore_global하여 이것을 git 구성에 추가하십시오.

    참고 : 이전에 추적 한 파일은 다음을 실행하여 추적을 해제 할 수 있습니다. git rm --cached filename

  2. Repo exclude- 공유 할 필요가없는 로컬 파일의 경우 파일 패턴 또는 디렉토리를 파일에 추가하기 만하면됩니다 .git/info/exclude. 논문 규칙 때문에, 최선을 다하고되지 않은 다른 사용자가 보이지 않는 추가 정보를 원하시면 여기

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


Windows 탐색기에서. 처음에.

해결 방법은 commandshell로 이동하여 "edit"를 사용하여 새 파일을 만드는 것입니다.


GIT가 특정 파일이나 폴더를 무시하도록 지시하려면 파일을 만들어야 .gitignore합니다.

하지만 Windows 탐색기에서는 파일 이름을 제공해야합니다. 확장자 만있는 파일을 만들 수는 없습니다. 트릭은 빈 텍스트 파일을 만들고 명령 프롬프트로 이동하여 파일 이름을 다음과 같이 변경하는 것입니다. .gitignore

ren "New Text Document.txt" .gitignore

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

그것이 당신의 질문에 답하기를 바랍니다


폴더 안에있는 파일이 아닌 폴더를 유지하려면 내용이 "*"인 폴더에 ".gitignore"파일을 넣으십시오. 이 파일은 저장소의 모든 컨텐츠를 무시합니다. 그러나 .gitignore귀하의 저장소에 포함됩니다.

$ 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

Windows에는 슬래시가 있습니다. 단일 디렉토리 제외 .gitignore 와를

dir_to_exclude /

작동하지만 모든 디렉토리를 제외합니다.

/

my file.txt디렉토리에 공백이있는 파일 이름 (예 :)이 있는 경우 문제가 발생합니다 . Git bash는 이러한 공백을 백 슬래시 (예 :)로 이스케이프 my\ file.txt하고 Windows 용 Git은 /\.

모든 디렉토리를 더 잘 제외하려면 다음을 사용하십시오.

** /

연속 된 두 개의 별표는 디렉토리 내용을 나타냅니다.


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


하위 폴더를 제외해야하는 경우에만 **와일드 카드를 사용하여 모든 수준의 하위 디렉터리를 제외 할 수 있습니다 .

**/build/output/Debug/

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

예시적인 예,

예시 시스템

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

  • / dirB /의 내용 무시

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

  • 표준 gitignore 정보가있는 곳입니다.

무시 된 디렉토리 .gitignore (/root/dirB.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/

I added the folders "assets" and "compiled" to the list of files and directories to ignore.


You can create the ".gitignore" file with the contents:

*
!.gitignore

It works for me and simples.


I've had some problems getting git to pickup the .gitignore file on Windows. The $GIT_DIR/info/exclude file always seems to work though. The downside of this approach, however, is that the files in the $GIT_DIR directory are not included in the check-in, and therefore not shared.

p.s. $GIT_DIR is usually the hidden folder named .git


I assume the problem is that your working tree is like:

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

... with the .gitignore you describe. This will give you git status output like:

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

... if the index.html files have not yet been added to the repository. (git sees that there are unignored files in the cache directories, but only reports the directories.) To fix this, make sure that you have added and committed the index.html files:

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

... and your git status will then look like:

$ 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)

(Obviously you do want to commit .gitignore as well, I was just being lazy with this test case.)


On Unix:

touch .gitignore

On Windows:

echo > .gitignore

These commands executed in a terminal will create a .gitignore file in the current location.

Then just add info to this .gitignore file (using Notepad++ for example) which files or folders should be ignored. Save your changes. That's it :)

More information: https://www.atlassian.com/git/tutorials/saving-changes/gitignore


On Windows and Mac, if you want to ignore a folder named Flower_Data_Folder in the current directory, you can do:

echo Flower_Data_Folder >> .gitignore

If its a file named data.txt

echo data.txt >> .gitignore

if its a path like "Data/passwords.txt"

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


I had similar issues, I work on a windows tool chain with a shared repo with linux guys, they happlily create files with the same [except for case] names in a given folder.

The effect is that I can clone the repo and immediatly have dozens of 'modified' files that if I checked in would create havoc.

I have windows set to case sensitive and git to not ignore case but it still fails (in the win32 api calls apparently).

If I gitignore the files then I have to remember to not track the .gitignore file.

But I found a good answer here http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

Chris

참고URL : https://stackoverflow.com/questions/343646/ignoring-directories-in-git-repos-on-windows

반응형