我正在使用GIT在我的台式计算机和服务器之间同步源代码文件。
我在服务器上有一个使用git init --bare
创建的git存储库。然后,我使用git init
在桌面上创建了一个存储库,并添加了git add ... etc...
的所有代码文件。
然后我将服务器仓库添加为"来源" (无论那意味着什么 - 原点和主人之间的区别是什么?这些似乎是2个随机或任意标签。)使用此命令:git remote add origin ssh://put the server url here (192.168.0.1 blaa blaa etc)
我在桌面端运行git push origin master
。这会将代码发送到服务器上的git存储库。
但是我需要在服务器上编译我的代码。为了做到这一点,我将git存储库克隆到服务器上的相邻目录中。 (服务器端:):将新目录放在与git存储库的父目录相同的目录中,cd到这个新目录)git clone ../gitrespository.git
(用我的代码创建一个新的子目录)
然后我可以cd到这个子目录进行编译和运行。
但是我现在对我的代码进行了一些更改。我从桌面端的git跟踪中删除了一个文件,然后物理地重命名了该文件。我还在桌面端的git跟踪中添加了一个新文件。我使用git push origin master
将代码推送到服务器。
但是,现在当我在服务器端运行git pull
时,克隆存储库中的 我只会收到一条消息,说明"已经是最新的"。新文件没有显示,我删除的旧文件仍在那里......我做错了什么?
最后,有没有更好的方法将我的代码上传到服务器。我使用rsync来复制它。 Git的优势在于它可以跟踪更改(虽然我还没有学会如何执行此操作)并允许多个用户处理代码。这可能意味着如果我使用git存储库,如果我使用多台计算机(桌面/笔记本电脑),我就不太可能犯下严重的错误。然而,缺点是rsync很快,而且#34;。我运行1个命令(作为减少键入的shell脚本)来上传我的代码,然后在服务器上运行另一个命令来编译。使用Git我必须运行1个命令上传,然后另一个命令克隆,然后另一个命令进行编译。我猜它只有一个命令,但看起来仍然有点奇怪"让代码以我无法在服务器上使用的格式存储在存储库中(不确定Git存储库是如何格式化的,但据我所知,它们不是人类可读的)然后将此代码克隆到另一个目录所在的格式我可以编译...
答案 0 :(得分:0)
在运行git push origin master
之前,必须运行另一个命令。在运行之前运行git commit -m 'some message here'
。
这意味着我必须运行两倍于rsync
的命令,但这有点不方便......