2012-04-05 3 views
0

나는 현재 자바 프로젝트에서 계속 자바 파일을 수정하고 있는데, 그 중 하나를 모두 추가하고자 할 때 우분투 프로젝트의 루트 폴더에서 급히 떨어졌다.git add ./*.java가 작동하지 않습니까?

git add ./*.java 

을하지만 그것을하지 않습니다

나는 시도했다. 나는 이렇게 별표를 벗어나려고했다 :

git add ./\*.java 

그러나 그것은 그것을하지 않는다. 그렇다면 그것을 인용 해 보았습니다 :

git add "./*.java" 

하지만 그렇게하지 않습니다.

  $ git add Documentation/\*.txt 

I :

모든 문서 디렉토리에서 * .txt 인 파일과 하위 디렉토리에서 내용을 추가합니다 :

"자식 추가"에 대한 매뉴얼 페이지를 예로 들어이 있습니다 위의 "문서"와 같은 디렉토리를 사용해 보았지만이를 증명할 수는 있지만 작동하지 않습니다.

무엇이 누락 되었습니까?

[업데이트] 나는 아래 GoZoner의 제안 @ 밖으로 시도하고 작동 만 파일이 새로운 경우 , 그들은 업데이트 된 기존의 것들은하지 않은 경우. 이것은 매우 이상합니다. 대신 일을 '자식 추가'를 사용

+0

어떤 오류가 발생합니까? 'git add ./*. java' 또는'git add * .java'는 현재 디렉토리에있는 모든 Java 파일을 추가해야합니다. 성공하면 정보가 표시되지 않습니다. 'git status '란 무엇을 말합니까? –

+1

'git add'단어를 'ls'로 바꾸고 다시 시도하십시오. 특히 'ls ./*.java'. 'ls'목록에 아무 것도 나타나지 않으면 'git add'는 아무 것도 찾지 않습니다. – GoZoner

+0

+1 to @GoZoner. Fileglobbing은 호출되는 프로그램이 아니라 쉘에 의해 수행됩니다. 동일한 패턴으로 ls를 사용하여 추가 할 항목을 테스트하십시오. –

답변

0

: 파일 (자식에 의해 알 수없는) 새로운 어떤 파일을 수정 한 내용을 보여줍니다

git status 

. 더 중요한 것은 'git status'는보고 된 파일의 전체 경로를 보여줍니다. 전체 경로를 알면 'git add full-path-to.java'를 사용하여 하나씩 추가 할 수 있으며, 모든 것이 커밋 가능하면 'git add -A'가 모두 추가합니다.

+0

나는 이것을 알고있다; 나는 보통 "git add"라고 말합니다. 내 변화를 무대로 나아 간다. 내가 관심있는 파일과 다른 확장자를 가진 파일을 건너 뛰는 방법을 찾고 있는데 ... – scorpiodawg

+0

바로 지금 중요한 것은 추가 할 .java 파일을 보는 것이다. . '자식 상태'는 파일 목록을 보여 주며, 그 중 하나에서 전체 경로와 함께 'git add'를 사용하면 추가되지 않습니다. – GoZoner

0

'.'을 이스케이프 처리해야합니다.

git add \./\*.java 

작품. 당신이 자식은 이미 당신이 필터를 사용하여 자식-LS-파일을 결합 수에 대해 알고 파일에 자신을 제한하려면

$ git add \./\*.c 
$ git status 
# On branch br1 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: bang/boo.c 
# new file: bing/one.c 
# 
+0

이것은 흥미 롭습니다. 솔루션은 작동하지만 새 파일은 * 전용 *입니다. 위의 변경을 커밋하고 현재 boo.c를 업데이트하면 동일한 git add 문이 더 이상 변경 사항을 선택하지 않습니다. – scorpiodawg

+0

나를위한 것이 아닙니다. 위의 색인을 작성하여 두 개의 파일을 추가했습니다. 그런 다음 bang/boo.c를 변경했습니다. '자식 상태'는 파일을 '커밋을 위해 준비되지 않음'으로 표시합니다. 그런 다음 위와 같이 'git add'명령을 사용했습니다. 'git status'는 bang/boo.c를 'committed to be committed'로 표시합니다. – GoZoner

+0

참으로 이상합니다. 어떤 쉘/OS를 사용하고 있습니까? – scorpiodawg

0

:

git ls-files [path] | grep '\.java$' | xargs git add

을 여기에 대한 경로를 지정해야합니다 당신의 폴더. 사용자의 글로벌 각 디렉토리에 .git가/정보는/제외 .gitignore 및 :

또는 여기

당신은 표준 자식 제외를 제외하면서 캐시 C 및 기타 오 파일을 표시하는 명령을 제공 제외 파일.이 답변 Recursively add files by pattern에서

git ls-files -co --exclude-standard | grep '\.java$'| xargs git add

.

관련 문제