提交后Git不会影响更改

时间:2013-07-03 14:51:45

标签: linux git debian

这是我第一次尝试使用版本控制。正如我发现最好的解决方案之一是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没有变化。我不明白什么是问题,如果有问题或我做错了什么。

Git documentation

感谢。

4 个答案:

答案 0 :(得分:1)

这是一个完整的测试运行使用你的例子(尽可能接近合理)。您可以从此日志中看到您的命令应该正常工作。如果您得到一些不同的输出,请与我们分享,以便我们可以帮助您解决您的实际问题。一步一步:

  1. 创建一些可用于此示例的目录

    $ mkdir bare
    $ mkdir clone
    
  2. 初始化一个名为myproject.git

    的裸仓库
    $ cd bare/
    $ git init --bare myproject.git
    Initialized empty Git repository in /example/bare/myproject.git/
    
  3. 切换到clone目录并克隆我们刚创建的仓库

    $ cd ../clone
    $ git clone ../bare/myproject.git
    Cloning into 'myproject'...
    warning: You appear to have cloned an empty repository.
    done.
    
  4. 将目录更改为新的存储库,然后创建,添加和提交新文件

    $ 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
    
  5. 将此新提交推回原点(我们从之前克隆的裸存储库)

    $ 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
    
  6. 回到裸仓库,看看提交是否在那里

    $ cd ../../bare/myproject.git/
    $ git log
    commit 921786a20f3e7e0d17eec65450472b54bf3d7c56
    Author: Carl Norum <carl@someplaceorother.com>
    Date:   Wed Jul 3 08:00:31 2013 -0700
    
        TEST
    
  7. 是的,所以一切正常。

答案 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 pullgit push访问。 从理论上讲,您可以直接克隆非裸存储库(即:git控制下的工作目录),但push回到此类存储库通常很麻烦 - 主要是因为您创建了访问权限的层次结构。

答案 2 :(得分:-1)

这可能是一个非常好的教程,可以帮助您入门。 Tutorial

尝试git commit -a -m“TEST”

答案 3 :(得分:-1)

您是否在lokal repo和远程仓库之间建立了连接?

尝试: git remote add origin / home / user / myProject /