我正在尝试设置一个简单的 GIT 服务器。我在 Virtual PC(Virtual Box)上安装了 Ubuntu。我安装了 GIT,创建了一个 repo 等
git init
git add .
git commit "..."
Run Code Online (Sandbox Code Playgroud)
然后在 Windows 上,我做了如下(在 cygwin 上)
git clone jiewmeng@192.168.0.3:proj1
Run Code Online (Sandbox Code Playgroud)
然后尝试进行更改
git commit -am "..."
但得到了类似的东西

我想我的 GIT 设置有误?我读到它与裸/非裸存储库有关?我应该一直使用裸机吗?我试过
git checkout --bare jiewmeng@192.168.0.3:proj1
Run Code Online (Sandbox Code Playgroud)
但进入proj1.git了它,里面有奇怪的文件/文件夹,比如(HEAD 等)。什么是设置 GIT 的正确方法?
也有人可以解释裸/非裸存储库,我有点迷茫,使用 GitHub,没有这样的事情!
2011 年 4 月 28 日下午 6 点 UTC+8 更新
我尝试遵循http://www.youtube.com/watch?v=1gNFrPNF9-Y并且在 Ubuntu(服务器)上做了
git init --bare
Run Code Online (Sandbox Code Playgroud)
然后在 Windows (Client/Cygwin) 上做了
git init
// added readme.txt
git add .
git commit -m "..."
git remote add origin master jiewmeng@192.168.0.3:proj2
git push origin master
Run Code Online (Sandbox Code Playgroud)
没有错误似乎没问题。但是在 Ubuntu 上,我看不到我的文件在哪里?我在branches/那里看了1 个第 n 个?
“普通”存储库是包含实际存储库和工作副本的目录。实际存储库位于名为 的隐藏子目录中.git。工作副本是您使用的那些文件和目录。
“裸”存储库只是.git目录的内容,没有工作副本。
您不能在裸存储库上工作。您首先必须将裸存储库克隆到普通存储库,然后处理克隆。
在您的第一次尝试中,您创建了一个“普通”存储库。然后你克隆了那个。然后你试图推回正常的存储库。然后你收到了警告。你不应该推送到一个普通的存储库。当您尝试这样做时,Git 会警告您。您应该只推送到裸存储库。
在您的第二次尝试中,您创建了一个“裸”存储库。然后您创建了一个“普通”存储库。然后你从普通仓库推送到裸仓库。即(之一)预期的工作流程。这就是为什么您没有收到错误或警告的原因。
当您想从 Windows 机器和 ubuntu 机器处理您的项目时,您有两个选择:
创建一个裸存储库(无论在哪里)。然后从该存储库克隆,一个在 Windows 机器上,另一个在 ubuntu 机器上。现在从克隆推送到裸存储库,然后从裸存储库拉取到克隆。不要推送到正常的存储库。
创建两个普通存储库,一个在 windows 机器上,一个在 ubuntu 机器上。现在,在 ubuntu 上工作时,您可以从 Windows 机器中拉取,反之亦然。不要互相推挤。
底线:只推送到裸存储库。在所有其他情况下,当您认为要从 A 推到 B 时,请转到 B,然后从 A 拉。
看来你对 git 很陌生。请阅读以下一本或两本非常好的书籍:Git Book、Pro Git。
| 归档时间: |
|
| 查看次数: |
6897 次 |
| 最近记录: |