命令git clonegit@github.com:whatever创建一个名为whatever的目录,其中包含Git存储库:

./
    whatever/
        .git

我希望将Git存储库的内容克隆到我的当前目录中。/而是:

./
    .git

当前回答

我会这样做,但我已经化名为我做了。

$ cd ~Downloads/git; git clone https:git.foo/poo.git

也许有一种更优雅的方式来做这件事,但我发现这对我自己来说是最简单的。

这是我为加快进度而创建的别名。我为zsh制作了它,但它对bash或任何其他贝壳(如鱼、xyzsh、fizsh等)都应该很好。

用你最喜欢的编辑器编辑~/.zshrc、/.bashrc等(我的是Leafpad,所以我会写$leakpad~/.zhrc)。

然而,我个人的偏好是制作一个zsh插件来跟踪我的所有别名。您可以通过运行以下命令为oh my zsh创建个人插件:

$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
     # In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
     # Again, in my case 'ev-aliases.plugin.zsh'

然后,将这些行添加到新创建的空白alies.plugin文件中:

# Git aliases
alias gc="cd ~/Downloads/git; git clone "

(从这里开始,用我的名字替换你的名字。)

然后,为了使别名工作,它们(连同zsh)必须来源于(或其名称)。为此,在自定义插件文档中添加以下内容:

## Ev's Aliases

#### Remember to re-source zsh after making any changes with these commands:

#### These commands should also work, assuming ev-aliases have already been sourced before:

allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
#### 

####################################

# git aliases

alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "

####################################

保存你的oh my zsh插件,然后运行allsource。如果这似乎不起作用,只需运行source$ZSH/oh-my-ZSH.sh;source/home/ev/.oh my zsh/plugins/ev aliases/ev-aliases.plugin.zsh。这将加载插件源代码,从现在起允许您使用allsource。


我正在用我的所有别名创建一个Git存储库。请随时在这里查看:Ev的点文件。请随意挑选和改进,以满足您的需求。

其他回答

虽然上面的所有答案都很好,但我想提出一种新的方法,而不是在公共html目录中使用符号链接方法,正如公认答案中提出的BEST。您需要访问服务器虚拟主机配置。

它是关于配置直接指向存储库目录的web服务器的虚拟主机。在Apache中,您可以这样做:

DocumentRoot/var/www/html/website/your git repo

以下是虚拟主机文件的示例:

<VirtualHost *:443>
    ServerName example.com

    DocumentRoot /path/to/your-git-repo
    ...
    ...
    ...
    ...
</VirtualHost>

关于原帖子中的这一行:

“我知道在克隆了回购之后如何移动文件,但这似乎打破了git”

我能够做到这一点,到目前为止,我看不到我的添加、提交、推送和拉取操作有任何问题。

上述方法已说明,但并未细分为步骤。以下是适用于我的步骤:

将repo克隆到任何新的临时文件夹中cd到您刚刚在本地克隆的根文件夹中将文件夹的全部内容(包括/.git目录)复制到您喜欢的任何现有文件夹中;(假设您希望与回购合并的eclipse项目)

您刚刚将文件复制到的现有文件夹现在可以与git交互了。

要将git存储库克隆到特定文件夹中,可以使用-C<path>参数,例如。

git -C /httpdocs clone git@github.com:whatever

尽管它仍然会在其上创建一个任意文件夹,但要将存储库的内容克隆到当前目录中,请使用以下语法:

cd /httpdocs
git clone git@github.com:whatever .

请注意,仅当目录为空时,才允许克隆到现有目录中。

由于要克隆到可供公众访问的文件夹中,请考虑使用--separate Git-dir=<Git-dir>或在web服务器配置中排除.Git文件夹(例如在.htaccess文件中),将Git存储库与工作树分离。

当您将文件移动到需要的位置时,是否也在移动.git目录?根据您的操作系统和配置,此目录可能被隐藏。

它包含repo和支持文件,而位于/public目录中的项目文件仅为当前签出提交(默认情况下为主分支)中的版本。

For Windows user 

1> Open command prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .

It will start cloning saving on the selected folder you given .