2010-02-25 201 views
106

我已經閱讀了無數的教程,我一直在簡短的介紹。下面是我得到了什麼:如何使用Git初始推送到遠程存儲庫?

- 我在我的Windows桌面上運行的RubyMine
- 我已經在我的WebFaction託管帳戶安裝的Git按他們的instructions
- Git的似乎是罰款工作兩臺機器

下面是我在做什麼:
1.在服務器:
                 一個。 MKDIR 項目
                 灣git的初始化
                 ℃。 git add。
                  d。 git的承諾< --- 「沒有承諾」
2.在客戶端:
                 一個。在RubyMine中創建新項目。
                 灣「混帳初始化」 項目
                 的C頂級目錄。 「推送更改」到服務器< ----「未能推送一些文件到......」。

我缺少什麼步驟?

回答

254

在服務器:

mkdir my_project.git 
cd my_project.git 
git --bare init 

在客戶端:

mkdir my_project 
cd my_project 
touch .gitignore 
git init 
git add . 
git commit -m "Initial commit" 
git remote add origin [email protected]:/path/to/my_project.git 
git push origin master 

注意,當您添加的由來,您可以使用多種格式和模式。我建議你看看你的託管服務提供什麼。

+0

因爲我正在使用RubyMine,所以我改變了唯一的一件事情,那就是我使用它的66個默認文件替換了觸摸.gitignore並創建了一個rails項目。非常感謝你! – 2010-02-25 20:50:29

+0

列出命令的榮譽。這也是我設置遠程存儲庫的方式。 – 2010-02-25 20:55:12

+5

我應該補充說,如果你希望其他人在你的回購協議中與你合作,你應該在'git --bare init'命令末尾加上'--shared'。這將設置必要的權限。 – 2010-02-25 20:56:51

4

你以前犯,例如添加at least one file到存儲庫.gitignore

+0

我想我試圖使用它的方式是最初從我的客戶端添加文件,因爲那是我寫代碼的地方。在git中,這在概念上是不合適的嗎?我需要先在客戶端提交然後推送到服務器嗎? – 2010-02-25 20:33:30

0

您需要設置遠程存儲庫客戶端上:

git remote add origin ssh://myserver.com/path/to/project 
+0

我運行了這個命令,但是「git push origin master」仍然導致「未能推送一些裁判」。 我試着做一個「git pull origin master」並收到一個「找不到遠程參考主文件」。 – 2010-02-25 20:31:28

+0

我不確定它是否有所作爲,但是我的遠程存儲庫是由@Josh Lindsey建議的'git --bare init'創建的。 – 2010-02-25 20:54:14

2

你可以試試這個:

服務器上:

增加新的組/etc/group像 (例如)

mygroup:1001:michael,nir 

創建新的Git倉庫:

mkdir /srv/git 
cd /srv/git 
mkdir project_dir 
cd project_dir 
git --bare init (initial git repository) 
chgrp -R mygroup objects/ refs/ (change owner of directory) 
chmod -R g+w objects/ refs/ (give permission write) 

上客戶:

mkdir my_project 
cd my_project 
touch .gitignore 
git init 
git add . 
git commit -m "Initial commit" 
git remote add origin [email protected]:/path/to/my_project.git 
git push origin master 

(感謝約什 - 林賽對客戶端)

客戶端後,執行服務器上的這個命令:

cd /srv/git/project_dir 
chmod -R g+w objects/ refs/ 

如果有混帳拉後這個錯誤:

There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details 

git pull <remote> <branch> 
If you wish to set tracking information for this branch you can do so with: 

git branch --set-upstream new origin/<branch> 

試:

git push -u origin master 

這將有所幫助。

0

@Josh Lindsey已經回答完美無缺。但我想添加一些信息,因爲我經常使用ssh。

因此只要改變:

git remote add origin [email protected]:/path/to/my_project.git

到:

git remote add origin ssh://[email protected]/path/to/my_project

注意,域名和路徑之間的冒號是不存在了。

1

如果您的項目沒有上游分支,也就是說,如果這是遠程存儲庫第一次知道在本地存儲庫中創建的分支,那麼以下命令應該可以工作。

git push --set-upstream origin <branch-name> 
相關問題