2013-12-18 62 views
1

我創建了一個純倉庫:推到Git的從NetBeans中

git init --bare 

我的理解是:因爲沒有主分支此刻正在創建

git log 

將無法​​正常工作。 我還understand有(至少)3個可能的修復。我沒有創建任何分支(這是一個新創建的存儲庫)。我沒有現有的提交。因此,它給我留下了:

推新的主分支到庫中從別的

地方我有一個本地倉庫(以上是在遠程服務器上創建)。我正在使用NetBeans 7.4。我正嘗試推送到上面創建的遠程裸倉庫。對於本地分支機構,我只能選擇'master - > master',工具提示'master will be added'。對於遠程分支,我只能選擇'master - > origin/master',工具提示'origin/master will be created'。點擊完成後,日誌說:

的Git分支

遠程Git -v

遠程設置:起源

混帳推SFTP://path.to.rep.git裁判/頭/主:參/頭/主

== [IDE] == 2013年12月18日下午3點22分58秒推 - ###成品。

我應該提到我在我的本地存儲庫中提交了一個提交,我正在嘗試推送。

回到服務器上,在純倉庫:

git log 
fatal: bad default revision 'HEAD' 

所以,從NetBeans中推什麼也沒做。另外:

git branch 

什麼也沒有返回。所以主人沒有被創造。

在服務器上,我想:

git clone bare.repo.git myrepo 

在myrepo:

touch myfile 
git add myfile 
git commit -m "added myfile" 
git push bare.repo.git master 

然後,早在純倉庫:

git log 

現在的工作(這是我預期)。回到NetBeans中,現在我有兩個選項可用於本地分支:'master - > master',工具提示說'需要遠程主服務器'和'master',工具提示'主服務器將被刪除'。第一個選項不起作用 - NetBeans表示:「推送會導致不快速更新」。第二個可能會刪除裸倉庫中的master分支,因爲'git log'不再有效。現在我又回到了開始。

這是正常的行爲?我錯過了什麼嗎?或者,也許這是一個NetBeans錯誤?或者一個混帳錯誤?

我只是試圖從NetBeans推送到新創建的遠程存儲庫。

回答

1

這不是正常行爲,或者至少NetBeans不以受控方式行事。推送失敗的原因似乎是因爲NetBeans引發異常:

java.lang.NullPointerException 
at org.eclipse.jgit.lib.ObjectIdOwnerMap.get(ObjectIdOwnerMap.java:131) 
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:895) 
at org.eclipse.jgit.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1598) 
at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:748) 
at org.eclipse.jgit.storage.pack.PackWriter.preparePack(PackWriter.java:711) 
at org.eclipse.jgit.transport.WalkPushConnection.sendpack(WalkPushConnection.java:229) 
at org.eclipse.jgit.transport.WalkPushConnection.push(WalkPushConnection.java:169) 
at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:141) 
at org.eclipse.jgit.transport.Transport.push(Transport.java:1162) 
at org.netbeans.libs.git.jgit.commands.PushCommand.runTransportCommand(PushCommand.java:111) 
at org.netbeans.libs.git.jgit.commands.TransportCommand.run(TransportCommand.java:140) 
at org.netbeans.libs.git.jgit.commands.GitCommand.execute(GitCommand.java:72) 
at org.netbeans.libs.git.GitClient.push(GitClient.java:858) 
at org.netbeans.modules.git.client.GitClient$38.call(GitClient.java:603) 
at org.netbeans.modules.git.client.GitClient$38.call(GitClient.java:599) 
at org.openide.util.NetworkSettings.suppressAuthenticationDialog(NetworkSettings.java:140) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker$1$1.call(GitClient.java:816) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker$1.call(GitClient.java:837) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker.runMethodIntern(GitClient.java:849) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker.runMethod(GitClient.java:778) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker.runMethod(GitClient.java:760) 
at org.netbeans.modules.git.client.GitClient$CommandInvoker.access$400(GitClient.java:754) 
at org.netbeans.modules.git.client.GitClient.push(GitClient.java:599) 
at org.netbeans.modules.git.ui.push.PushAction$2.perform(PushAction.java:214) 
at org.netbeans.modules.git.client.GitProgressSupport.performIntern(GitProgressSupport.java:102) 
at org.netbeans.modules.git.client.GitProgressSupport.run(GitProgressSupport.java:95) 
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1432) 
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2042) 

我找到了解決方法。我所要做的就是用ssh替換sftp協議。