2016-12-05 3 views
6

그냥 git을 사용하여 프로젝트를 복제하고 새 분기를 열었습니다. 단지 하나의 파일을 변경 한 후에 변경 사항을 커밋하려고 시도했지만 3000+ 파일처럼 커밋하고 있음을 보여줍니다. 차이점을보기 위해 파일을 클릭 한 후, phpstorm은 "차이 없음"이라고 말합니다.프로젝트가 너무 많은 파일을 커밋합니다.

줄 끝과 관련된 오류 일 수 있다고 들었지만 지금 당장 무엇을해야할지 모릅니다. 저 좀 도와 주 시겠어요? 지금 3000 개의 파일을 검증하는 것은 불가능하며, 뭔가 미친 짓을하여 프로젝트를 파괴하려고하지 않습니다.

나는 phpstorm에서 LF (unix)와 CRLF (windows)로 라인 엔딩을 변경해 보았지만 전혀 도움이되지 못했다. git에서 변경하는 것이 필요할 수도 있다고 들었으므로 임의의 권장 명령을 실행하려고 시도했지만 전혀 결과가 없습니다.

편집 : 평판의 상금을 100 개 추가했습니다. 이 문제를 해결할 수 없습니다.

해결 방법 : 권한 문제인 것처럼 보입니다. 나는 모든 디렉토리에 chmod 777을 주었고 너무 많이 사용했다.

+0

변경 내용은 무엇입니까 ... –

+2

이것은 일반적으로 수정 된 사용 권한 또는 줄 끝으로 인해 발생합니다. 변경 사항을 보려면'git diff'를보십시오. – Chris

+0

@MikeB, 질문 작성자는 이미'phpstorm은 "차이가 없다"고 말했습니다. –

답변

0

.gitignore 파일에 한 줄 또는 두 줄을 추가해야 할 수 있습니다. 다음은 커밋하고 싶지 않은 IDE와 OS에서 생성 된 프로젝트 파일의 예입니다. 이 줄은 내 .gitignore 파일에 나열되어 있습니다.

# Package Files # 
*.jar 
*.war 
*.ear 

### Intellij ### 
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 
*.iml 
.idea 

### OSX ### 
.DS_Store 
.AppleDouble 
.LSOverride 
0

커밋을 취소하거나 별도의 분기로 커밋 한 다음 마스터로 끌어 오기 요청을하십시오.

+0

그러나 나는 자신을 결코 변경하지 않은 1400 개의 파일을 커밋하고있는이 정상적인 동작입니까? 현재 내 지부에서 위탁하고 있지만, 모든 파일을 살펴 보았습니다. 미치광이입니다. – divHelper11

3

프로젝트에서 린스 도구를 사용하는지 여부를 확인할 수 있습니다. Javascript 환경에 있다면 ESLint 또는 JSLint를 활용할 수 있습니다. linting tool의 설정 파일에서 어떤 라인 엔딩 유형이 정의되어 있는지 확인하십시오.

의 경우의 경우 \r\n이 CRLF에 대해 정의됩니다.

의 경우 UNIX, \n은 LF에 대해 정의됩니다.

프로젝트에 올바른 줄 끝이 설정되어있어 문제가 발생할 수 있습니다.

는 PhpStorm 에서 당신은 또한 편집기> 코드 스타일로 이동하여 라인 분리에서 정의한 설정의 유형을 볼 수 있습니다.

원격 지점과 로컬 환경 사이의 줄 끝 구성에서 벗어나면 수정하지 않은 여러 가지 원하지 않는 파일이 커밋 될 수 있습니다.

0

로컬에서 git init를 수행하고 git init을 수행 한 폴더에서 git clone을 수행했다면 로컬 git이 해당 파일을 인식하지 못하기 때문에 모든 파일을 커밋되지 않은 상태로 표시합니다.

이것은 git clone뿐 아니라 git init을 수행하는 많은 개발자에게 일어났습니다.

솔루션 :

    • 삭제 자식 초기화
    • 복제

가 작동해야하는 URL입니다. 동일한 작업을 수행했는지 확실하지는 않지만 그 중 하나는 확실합니다.

2

당신은 자동 포맷 당신의 IDE (예를 들어, 4 space -> 2 space 또는 역방향)으로 할 수있다 HTML, CSS, JS 코드 서식을 확인할 수 있습니다. line ending for Windows/Linux 기계도 확인하십시오.

  1. 하나의 해결책은 one file changes (수정 된 파일)을 어딘가에 저장하는 것입니다.
  2. IDE를 닫습니다. 터미널을 사용하십시오.
  3. 마지막 커밋을 실행 취소 (하드 재설정 : 모든 변경 사항이 제거됨)합니다.

    $ git reset --hard HEAD~1 
    
  4. 그런 다음 파일을 수정 된 파일로 바꾸십시오. (사용하여 터미널 또는 운영 체제 GUI)

  5. 그런 git add & commit

    $ git status     # see difference between working directory and the index 
    $ git commit -am 'message' # add & commit 
    
2

당신이 파일 권한 뭔가를해야합니까? 나는 이것이 문제일지도 모른다라고 생각한다.

old mode 100755 
new mode 100644 
+1

이것이 문제가된다면, 위의 VonC에 의해 수정이 제공됩니다. (파일 모드 설정) –

5

는 DIFF의 성격을 확인하십시오 : 당신이 이런 식으로 뭔가를 얻을 것이다 권한 문제가 될 경우

git diff mybranch master -- myfile.cs 

:

는 하나의 파일을 비교하려고합니다.

For eol, try

: 그런 경우

git -c color.diff.whitespace="red reverse" diff -R -- afile 

하는 .gitattributes 파일에서 text=auto 지침에 대한

git config --global core.autocrlf false 

Check also 후 다시 REPO를 복제. 내가 this answer에서 언급 한 바와 같이 당신은 git diff와의 차이를 볼 수 있습니다

git config --global core.filemode false 

: 후


For file permission mode, 복제 다시 REPO. 참고 since Git 2.9.1
, 당신은 그래서 당신이 할 필요가 첫번째 git checkout .git clean -f . 후 변경 사항을 적용 할 해당 분기를 체크 아웃 이후, 뭔가 마법이있을 수 있습니다

git add --chmod=+x -- yourFile 
+1

Lucio는 권한 문제인지 여부를 보여줍니다 (아래) git diff mybranch master - myfile.cs –

0

와 파일의 권한을 변경할 수 있습니다.

0
git checkout . 
git clean -f 
git reset --hard 
git clone 

또는

귀하의 편집기 들여 쓰기 CONFIGS

공간/탭이나 탭의 크기, 또는 HTML/CSS를 설정하고 다른 들여 쓰기에 의해 발생하므로 보여주는 차이처럼, 서로 달라야합니다.

관련 문제