2009-11-16 5 views
25

"$ git commit -m 'test"로 인덱스에 추가 된 작업 트리를 커밋했습니다. "stdout-put을 파일로 저장했는데 맨 위에 표시됩니다. ,git 커밋 문제

# On branch master 
# Changed but not updated: 
# (use "git add/rm ..." to update what will be commited) 
# (use "git checkout -- ..." to discard changes in working directory)" 

문제가 내 작업 트리가 REPO에 최선을 다하고되지 않는 것입니다, 당신은 변화를 커밋하기 전에 나는이 함께

감사

+0

돕? 특히 Windows에서 Git을 사용하고 있습니까? 그렇다면 어떤 환경에서 사용합니까? –

+0

우분투 서버, git 1.5.6 – deepblue

+1

내가 제안 할 수있는 첫 번째 것은 Git 버전을 업그레이드하는 것입니다. 최신 버전은 1.6.5.3입니다. 나는 여러분이 인용 한 그 특별한 메시지가 1.5.x 이후로 향상되었다고 확신합니다. –

답변

5

을 할 수있는 뭔가가 느낌이 말한다 먼저 색인에 추가해야합니다.

git add myfile 
git commit -m "test" 

양자 택일로, 당신은 더 SVN과 같은 스타일로 작업하고 변경된 모든 것을 저지 할 수

git commit -a -m "test" 

을 또는 당신은 단지 하나의 파일 커밋 추가 및-수 있습니다

git commit myfile -m "test" 
+0

모두 그랬습니다. 내가 Jed의 대답에 대한 주석에서 언급 한 바와 같이, 나는 많은 파일을 옮겨서 파일들이 삭제되고 재 도입 되었기 때문에 커밋 -a가이 경우에 작동하지 않을 것이라고 생각했다 ... 나는 자식들이 새로운 것으로 취급한다고 생각할 것이다. files then – deepblue

+0

필자가 생각한 때에 저장소에 파일을 추가하지 않았다고 제안 할 수 있습니다. 당신의 메시지는'git add'없이 먼저'git commit'을 실행할 때 보게되는 것입니다. –

+0

이상한. 나는 '힘내라.' 때마다. 그 속임수를해야합니다. 그래도 지적 해 주셔서 감사합니다 – deepblue

0

정말 설명서를 읽어야합니다.

git add yourfile 
git commit -m "test" 

는 또는 모든 변경된 파일을 커밋 -

git commit -a -m "test" 
+0

ofcourse 나는 작업 트리를 인덱스 ($ git add.)에 추가했다. 어느 것이 실행되었는지 ($ git commit -m 'test'> view_file). 나는 마지막 커밋에서 작업 트리를 약간 재구성했다. 그래서 많은 파일을 지워 버렸다. 새로운 장소에 새 파일을 넣고 재 삽입했다 ... 왜 파일에 출력을 저장하여 내가 무슨 자식인지 검토 할 수있다. – deepblue

2

당신은 이전에 최선을 다하고 git add .을 했습니까?

git statusgit add 또는 git commit 앞에 표시하는 것이 좋습니다. 변경된 내용과 준비된 내용을 확인하는 것이 좋습니다.

git diff을 수행하면 커밋 할 특정 변경 사항을 확인하는 것이 매우 편리합니다.

파일을 추가 한 다음 이름을 바꾼 경우 여기에 git status이 표시됩니다. 이 시점에서

[email protected]:~$ git status 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: foo.txt 
# 
# Changed but not updated: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: foo.txt 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# bar.txt 

할 수 있습니다 만 할 git add . 다음 당신은 당신이 원하는 자식의 repo에서 파일이있는 경우 향후 git status will give you more information, perhaps pointing out that you still have a new file and a deleted file called에 foo.txt . To fix this you need to manually 자식 RM은 foo.txt의 before doing 자식 commit`

이동 git mv 사용해야합니다.

+0

예. 'git status ' 멋지다. 그것도 내가 질문에 넣은 메시지를보고하고있다. 그 빌어 먹을 변화는 단지 커밋되지 않습니다. 나는 하루 종일 자습서와 문서를 읽고 시험해 볼 것을 찾으려고했다. – deepblue

+1

커밋에 포함시키려는 변경을하면'git add'를 다시해야합니다. 'git status'를하고'git add .' 그리고'git status'를 다시하면, 차이점을 볼 수 있습니다. – mlibby

+0

그리고 "make any changes"는 파일 변경, 파일 이름 변경, 파일 삭제, 파일 추가 ... git를 혼동시킬 수있는 모든 것을 포함합니다. – mlibby

1

git add는 실행할 때 인덱스에 해당 파일의 내용을 추가합니다. git add를 실행하고 파일을 변경하면 새로운 변경 사항이 색인에 표시되지 않습니다. 당신이 주변에 파일을 이동, 그 후 git add 사용하는 경우

+0

'추가'와 '커밋'호출 사이에 추가 작업이 수행되지 않았습니다. – deepblue

0

는, 자식 만 새 복사본을 추가되지만 이전 제거하지 않습니다

$ git status 
# On branch master 
nothing to commit (working directory clean) 
$ mv from to 
$ git add . 
$ git status 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: to 
# 
# Changed but not updated: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: from 
# 
$ git commit -m "..." 
$ git status 
# On branch master 
# Changed but not updated: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: from 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

이전 복사본을 제거하려면 당신은 또한 git rm을 사용해야합니다

$ git rm from 
rm 'from' 
$ git commit -m "..." 
$ git status 
# On branch master 
nothing to commit (working directory clean) 

하지만 왜 변경 사항을 적용 할 수 없는지는 알 수 없습니다.

28

짧은 답변 :

git push -u origin master

긴 대답 :

당신이 가장 가능성이 아직 생성되지 않은 지점에 커밋을 밀어 위해 노력하고 - 새로 만든 Github에서에, 예를 들어 README 파일없이 자동으로 작성됩니다. git push -u origin master을 호출하여 푸시해야하는 리모트 (원점, 일반적으로 git 기본값)와 브랜치 (마스터 인 경우 일반적인 경우)를 모두 지정하십시오. 망할 놈의 문서에 따르면

-u, --set-상류 인수없는 자식에 의해 사용 (추적) 참조를 상류 추가, 최신 또는 성공적으로 밀려 모든 지점의 경우를 -pull (1) 및 다른 명령. 에 대한 자세한 내용은 git-config (1)의 branch..merge를 참조하십시오.

이 다음에서이 명령의 성공적인 실행, 후 그냥 git pushgit pull을 사용할 수 있습니다에 있음을 의미하며 (일부 exceptions와) origin master로 기본 설정됩니다.

0

얘들 아 힘내와 같은 문제가있었습니다. 당신은 당신이 저지하려는 저장소가있는 경우
나는 창문에 8

  1. 검사를 Cygwin에서 실행하고 있습니다.
  2. 검사 경로

$ git remote -v # 이것은 당신이 당신이 바로 저장소에 파일을 밀어 원격으로 새 경로를 설정하는 방법입니다 경로

$ git remote set-url origin [email protected]:username/repos.git #을 볼 수있는 방법입니다. $ git remote -v # 올바른 경로가 설정되었는지 확인하려면 #을 누르십시오.

  1. $ git add.

4.

$ git push origin master 

HOPE 이것은 당신이 사용하는 어떤 운영 시스템