执行命令git clone [email protected]:whatever
在我当前的文件夹中创建一个名为whatever的目录,并将Git存储库的内容放入该文件夹:
/httpdocs/whatever/public
我的问题是我需要克隆到当前目录中的Git存储库的内容,以便它们出现在Web服务器的正确位置:
/httpdocs/public
我知道在克隆存储库之后如何移动文件,但这似乎打破了Git,我希望能够通过调用git pull
来更新。我怎样才能做到这一点?
选项A:
git clone [email protected]:whatever folder-name
选项B:
也移动.git文件夹。
更好的是:
将您的工作副本保存在其他位置,并创建符号链接。
如果您尝试将事物检出到当前目录,请确保删除.git存储库。
rm -rf .git
然后git clone https://github.com/symfony/symfony-sandbox.git
用法
git clone <repository>
将位于<repository>的存储库克隆到本地计算机上。原始存储库可以位于本地文件系统上,也可以位于可通过HTTP或SSH访问的远程计算机上。
git clone <repo> <directory>
将位于<repository>的存储库克隆到本地计算机上名为<directory>的文件夹中。
这是我将如何做到这一点,但我已经为我做了一个别名。
$ cd ~Downloads/git; git clone https:git.foo/poo.git
这可能是一种更优雅的方式,但我发现这对我自己来说最容易。
这是我为加快速度而创建的别名。我为zsh做了它,但它应该适用于bash或任何其他shell,如fish,xyzsh,fizsh等。
用你最喜欢的编辑器编辑~/.zshrc
,/.bashrc
等(我的是Leafpad,所以我会写$ leafpad ~/.zshrc
)。
但是,我个人的偏好是制作一个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'
然后,将这些行添加到新创建的空白alises.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's dot-files。请随意分叉并改进它们以满足您的需求。
由于某种原因,这种语法并不突出:
git clone repo-url [folder]
这里的文件夹是本地文件夹的可选路径(它将是本地存储库)。
Git clone
还将pull
代码从远程存储库导入本地存储库。事实上这是真的:
git clone repo-url = git init + git remote add origin repo-url + git pull
如果您将ssh
用于git cloning
,则可以使用以下命令。
git -C path clone [email protected]:path_to_repo.git
例如:git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
会将requests
的git存储库拉到你的/home/ubuntu/
路径。
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 .
我建议你按照以下链接:
https://help.github.com/en/articles/cloning-a-repository
如果在git clone URL命令时出现以下错误
fatal: unable to access 'URL': Could not resolve host: github.com
然后使用以下命令来修复它:
git config --global --unset https.proxy
关于来自原帖的这一行:
“我知道如何在我克隆回购后移动文件,但这似乎打破了git”
我能够做到这一点,到目前为止我没有看到任何问题,我的添加,提交,推送,拉动操作。
这种方法如上所述,但不是分解为步骤。以下是适合我的步骤:
您刚刚将文件复制到的现有文件夹现在已准备好与git进行交互。
我认为很多人问这个问题的例子就是这个。如果您在目录中希望转储git存储库的内容,请运行:
git clone [email protected]:whatever .
“。”最后将当前文件夹指定为checkout文件夹。
进入文件夹..如果文件夹为空,则:
git clone [email protected]:whatever .
其他
git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master
您使用克隆存储库
git clone [url]
例如,如果你想克隆名为open_framework的斯坦福大学Drupal Open Framework Git库,你可以这样做:
$ git clone git://github.com/SU-SWS/open_framework.git
这将创建一个名为open_framework的目录(在您当前的本地文件系统位置),初始化其中的.git目录,下载该存储库的所有数据,并检出最新版本的工作副本。如果你进入新创建的open_framework目录,你会看到那里的项目文件,准备工作或使用。
如果要将存储库克隆到名为open_framework之外的目录中,可以将其指定为下一个命令行选项:
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
该命令与前一个命令的作用相同,但目标目录名为mynewtheme。
Git有许多不同的传输协议可供使用。前面的示例使用git://协议,但您也可以看到http(s)://或user @ server:/path.git,它使用SSH传输协议。
当您将文件移动到所需的位置时,是否还要移动.git
目录?根据您的操作系统和配置,可能会隐藏此目录。
它包含repo和支持文件,而/public
目录中的项目文件只是当前签出提交中的版本(默认为master分支)。
克隆:
git clone [email protected]:jittre/name.git
克隆“特定分支”:
git clone -b [branch-name] [email protected]:jittre/name.git
要将git存储库克隆到特定文件夹,可以使用-C <path>
参数,例如
git -C /httpdocs clone [email protected]:whatever
虽然它仍然会在其上创建一个whatever
文件夹,但是要将存储库的内容克隆到当前目录中,请使用以下语法:
git [email protected]:whatever .
请注意,仅当目录为空时才允许克隆到现有目录中。
由于您要克隆到可供公众访问的文件夹,因此请考虑使用--separate-git-dir=<git dir>
或在Web服务器配置中排除.git
文件夹(例如在.htaccess
文件中)将Git存储库与工作树分开。
如果要克隆到当前文件夹,则应尝试以下操作:
git clone https://github.com/example/example.git ./
要克隆到当前工作目录:
git clone https://github.com/link.git
要克隆到另一个目录:
git clone https://github.com/link.git ./Folder1/Folder2
希望能帮助到你 :)