这是我第一次尝试使用版本控制。正如我发现最好的解决方案之一是Git。
我做的几乎一切都是正确的,至少我遇到了一些问题或类似的东西。
Debian Machine。
/家庭/用户/ myProject的/
git init --bare myproject.git
的/ var / WWW / clonedProject /
git clone /home/user/myProject/myproject.git
git add xxx.php
git commit -m "TEST"
git push origin master
但home / user / myProject没有变化。我不明白什么是问题,如果有问题或我做错了什么。
感谢。
答案 0 :(得分:1)
这是一个完整的测试运行使用你的例子(尽可能接近合理)。您可以从此日志中看到您的命令应该正常工作。如果您得到一些不同的输出,请与我们分享,以便我们可以帮助您解决您的实际问题。一步一步:
创建一些可用于此示例的目录
$ mkdir bare
$ mkdir clone
初始化一个名为myproject.git
$ cd bare/
$ git init --bare myproject.git
Initialized empty Git repository in /example/bare/myproject.git/
切换到clone
目录并克隆我们刚创建的仓库
$ cd ../clone
$ git clone ../bare/myproject.git
Cloning into 'myproject'...
warning: You appear to have cloned an empty repository.
done.
将目录更改为新的存储库,然后创建,添加和提交新文件
$ cd myproject/
$ touch xxx.php
$ git add xxx.php
$ git commit -m "TEST"
[master (root-commit) 921786a] TEST
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 xxx.php
将此新提交推回原点(我们从之前克隆的裸存储库)
$ git push origin master # push this new commit to origin
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To /example/clone/../bare/myproject.git
* [new branch] master -> master
回到裸仓库,看看提交是否在那里
$ cd ../../bare/myproject.git/
$ git log
commit 921786a20f3e7e0d17eec65450472b54bf3d7c56
Author: Carl Norum <carl@someplaceorother.com>
Date: Wed Jul 3 08:00:31 2013 -0700
TEST
是的,所以一切正常。
答案 1 :(得分:0)
您的更改已被/home/user/myProject/myproject.git
复制到数据库中。
它们不会自动分发给所有其他克隆。
要在home/usr/myProject
中查看它们,您必须将此文件夹作为存储库的克隆并发出git pull
。
在项目本身内建立“裸”存储库并不是一个好主意。
相反,您可能应该为所有“裸”回购使用单独的git
存储库。
然后,您push
从克隆“repositoryA”更改为中央“裸”存储库,并pull
从该中央存储库更改为另一个克隆“repositoryB”
$ cd ~
$ mkdir git
$ git init --bare git/myproject.git
$ cd git clone git/myproject myProject
$ ls
git/
myProject/
$ cd myProject/
$ ls
$ cd /var/www/clonedProject/
$ git clone /home/user/git/myproject.git
$ ls
myproject
$ cd myproject
$ touch xxx.php
$ ls
xxx.php
$ git add xxx.php
$ git commit -m "TEST"
$ git push origin master
$ cd ~/myProject
$ ls
$ git pull
$ ls
xxx.php
$
git
本身就是一个“分布式”版本控制系统,这意味着中央存储库的概念是不合适的。这意味着,没有单个服务器,但可以是任意数量的“远程”服务器,包括无服务器。
但是,如果您有单个存储库的多个克隆,通常建议至少有一个共享的“远程”,即仅通过git pull
和git push
访问。
从理论上讲,您可以直接克隆非裸存储库(即:git控制下的工作目录),但push
回到此类存储库通常很麻烦 - 主要是因为您创建了访问权限的层次结构。
答案 2 :(得分:-1)
这可能是一个非常好的教程,可以帮助您入门。 Tutorial
尝试git commit -a -m“TEST”
答案 3 :(得分:-1)
您是否在lokal repo和远程仓库之间建立了连接?
尝试: git remote add origin / home / user / myProject /