我是这个Git的新手。我想在远程Ubuntu服务器上设置一个Git存储库,我可以从中推送和提取NetBeans项目/文件。基本上,我使用SSH从远程存储库中提取项目,在NetBeans中进行更改,然后将这些更改推送回远程Ubuntu服务器。
我不想使用GitHub,因为这个项目将由一个5人的小团队私下进行,我们1)不希望我们的东西公开,2)不要想要支付任何钱来使用GitHub的私人存储库。还有其他一些原因,但是,我们还没有使用GitHub。
我承认我在这些问题上一无所知,甚至不知道我尝试做的事情是否可行。
所以,这些是我采取的步骤:
在Ubuntu服务器中创建一个目录来保存我的项目/存储库。
我下载了一个NetBeans项目(一个.zip文件),并将其解压缩到我创建的目录中。不知道它是否相关,但它是一个PHP项目。
我使用git init
创建了存储库,然后使用git add .
将项目的内容添加到存储库中。
我使用git commit
将更改提交到存储库。我使用git status
和git log
确认文件已添加到存储库中。
我在本地计算机(Windows)上打开了NetBeans,然后我去了Team> Git>克隆。在弹出的菜单中,对于Repository URL,我输入了ssh:// [my host]:[port] /path/to/repository/.git。
我输入了用户名,密码,并为克隆的文件和存储库内容指定了目标文件夹,然后单击了"下一步"。我选择了分支机构(我认为" master"是唯一可用的分支机构),然后点击" Next"。我选择了一个父目录,给了克隆一个名字,并完成了我应该在该屏幕上做的所有事情,然后点击了#34;完成"。
NetBeans确认克隆已完成,并询问我是否要打开该项目,然后单击该选项将其打开。一切正常,我在本地机器上有一份项目副本。
现在,这就是东西开始变得混乱的地方。
我在项目中添加了一个新的.php文件,并对其进行了编辑。
我保存了它,然后在“项目”标签中右键单击了我的项目,然后转到Git>添加,添加文件。然后我去了Git>提交。
然后,我去了团队>远程>推送,然后将其推回到我从中获取的存储库。
当我回到Ubuntu服务器并转到存储库所在的目录时,我没有看到任何更改。我没有看到我添加到项目中的新.php文件。
我不太确定我是否了解整个想法。为什么我没有看到任何变化?
答案 0 :(得分:0)
您只能将对象推送到远程存储库。您更改驻留在远程存储库的.git中的目标文件中。
通常,远程服务器只包含.git和底层文件,而不是实际签出的项目。
尝试" git status"在远程存储库中,您应该看到您推送的.php文件丢失。输入" git checkout。"使所有项目文件反映分支中实际存储的内容;它应该是你的.php文件。
查看this guide有关如何创建远程存储库的信息。初始提交实际上应来自您的本地计算机,您不应该在服务器上执行此操作。
另外,如果你想要类似github的基于web的功能,我推荐Gogs这是一个自托管,开源,轻量级的git服务。