Git 如何克隆到非空目录中?
我有目录A,其中的文件与目录B匹配。目录A可能有其他需要的文件。目录B是一个git repo 我想将目录B克隆到目录A,但git clone不允许,因为该目录非空 我希望它只是克隆.git,既然所有的文件都匹配,我可以从那里开始吗 我无法克隆到空目录中,因为我在目录A中有不在目录B中的文件,我想保留它们 复制.git不是一个选项,因为我希望使用REF进行推/拉操作,而不希望手动设置它们 有没有办法做到这一点 更新:我认为这是可行的,有人能看到任何问题吗?-->Git 如何克隆到非空目录中?,git,Git,我有目录A,其中的文件与目录B匹配。目录A可能有其他需要的文件。目录B是一个git repo 我想将目录B克隆到目录A,但git clone不允许,因为该目录非空 我希望它只是克隆.git,既然所有的文件都匹配,我可以从那里开始吗 我无法克隆到空目录中,因为我在目录A中有不在目录B中的文件,我想保留它们 复制.git不是一个选项,因为我希望使用REF进行推/拉操作,而不希望手动设置它们 有没有办法做到这一点 更新:我认为这是可行的,有人能看到任何问题吗?--> 也许我误解了你的问题,但是如果你将
也许我误解了你的问题,但是如果你将文件从A复制/移动到git repo B,并使用git add添加所需的文件,不是会更简单吗 更新:从git文档: 仅当目录为空时,才允许克隆到现有目录中
来源:也许我误解了你的问题,但如果你将文件从A复制/移动到git repo B,并使用git add添加所需的文件,不是会更简单吗 更新:从git文档: 仅当目录为空时,才允许克隆到现有目录中
来源:在以下shell命令中
existing dir
是一个目录,其内容与repo to clone
git存储库中的跟踪文件相匹配
#只克隆存储库的.git文件夹(不包括文件,因为它们已经在
#`existing dir`)放入一个空的临时目录中
git clone--没有用于克隆现有目录的签出repo/existing-dir.tmp#可能需要--没有用于克隆本地repo的硬链接
#将.git文件夹移动到包含这些文件的目录中。
#这使得'existing dir'成为git回购。
mv existing dir/existing dir.tmp/.git existing dir/
#删除临时目录
rmdir existing dir/existing-dir.tmp
cd现有目录
#git认为所有文件都被删除了,这将使回购的状态恢复为HEAD。
#警告:对文件的任何本地更改都将丢失。
git重置--硬头
在以下shell命令中,existing dir是一个目录,其内容与repo to clone
git存储库中的跟踪文件相匹配
#只克隆存储库的.git文件夹(不包括文件,因为它们已经在
#`existing dir`)放入一个空的临时目录中
git clone--没有用于克隆现有目录的签出repo/existing-dir.tmp#可能需要--没有用于克隆本地repo的硬链接
#将.git文件夹移动到包含这些文件的目录中。
#这使得'existing dir'成为git回购。
mv existing dir/existing dir.tmp/.git existing dir/
#删除临时目录
rmdir existing dir/existing-dir.tmp
cd现有目录
#git认为所有文件都被删除了,这将使回购的状态恢复为HEAD。
#警告:对文件的任何本地更改都将丢失。
git重置--硬头
我在寻找类似的东西,下面是我的想法:
我的情况是,我有一个活动的web树,我试图为它创建一个远程存储库,而不移动当前web树中的任何文件。以下是我所做的:
git init
git clone--bare/path/to/web/repo
[远程“源代码”]
部分[remote“origin”]
节添加到web树中指向新远程回购的.git/config我一直在寻找类似的东西,下面是我的想法: 我的情况是,我有一个活动的web树,我试图为它创建一个远程存储库,而不移动当前web树中的任何文件。以下是我所做的:
git init
git clone--bare/path/to/web/repo
[远程“源代码”]
部分[remote“origin”]
节添加到web树中指向新远程回购的.git/config下面是当我遇到同样的问题(至少我认为这是同样的问题)时我最后做的事情。我进入目录A并运行了
git init
因为我不希望目录A中的文件后面跟着git,所以我编辑了.gitignore并将现有文件添加到其中。在此之后,我运行了
git remote add origin'&&git pull origin master
et voíla,B被“克隆”到A中,没有一个小故障 以下是当我遇到同样的问题(至少我认为是同样的问题)时,我最后做的事情。我进入目录A并运行了git init
因为我不希望目录A中的文件后面跟着git,所以我编辑了.gitignore并将现有文件添加到其中。在此之后,我运行了git remote add origin'&&git pull origin master
et voíla,B被“克隆”到A中,没有一个小故障 这对我很有用:
git init
git remote add origin PATH/TO/REPO
git fetch
git reset origin/master # Required when the versioned files existed in path before "git init" of this repo.
git checkout -t origin/master
git init
git remote add origin PATH/TO/REPO
git pull origin master
cd existing_folder
git init
git remote add origin path_to_your_repo.git
git add .
git commit
git push -u origin master
注意:-t
将为您设置上游分支,如果这是您想要的,并且通常是这样。这对我很有效:
git init
git remote add origin PATH/TO/REPO
git fetch
git reset origin/master # Required when the versioned files existed in path before "git init" of this repo.
git checkout -t origin/master
git init
git remote add origin PATH/TO/REPO
git pull origin master
cd existing_folder
git init
git remote add origin path_to_your_repo.git
git add .
git commit
git push -u origin master
注意:
-t
将为您设置上游分支,如果这是您想要的,通常是这样。另一个简单的配方似乎对我很有效:
git clone --bare $URL .git
git config core.bare false
我使用现有文件签出到目录的主要用例是使用Git控制我的Unix点文件。在一个新帐户上,主目录中已经有一些文件,甚至可能是我想从Git获取的文件。另一个简单的方法似乎对我很有效:
git clone --bare $URL .git
git config core.bare false
我使用现有文件签出到目录的主要用例是使用Git控制我的Unix点文件。在新帐户上,主目录中已经有一些文件,
cd existing-dir
git clone --bare repo-to-clone .git
git config --unset core.bare
git remote rm origin
git remote add origin repo-to-clone
git reset
git clone repo /tmp/folder
cp -rf /tmp/folder/.git /dest/folder/
cd /dest/folder
git checkout -f master
.bash_history
.bash_logout
.bash_profile
.bashrc
.contactemail
.cpanel/
...
cd /home/existing_folder
git init
git remote add origin PATH/TO/REPO
git pull origin master
git status
**.git/info/exclude**
On branch master
nothing to commit, working tree clean
$ cd a
$ git init
$ git add .
$ git commit -m "..."
$ git remote add origin https://URL/TO/REPO
$ git pull origin master --allow-unrelated-histories
$ git push origin master