没有替换文件树的git clone

时间:2013-01-21 17:25:36

标签: git github

我有一个只发送两个子目录到github的gitignore。

我的gitignore

/*
!/conf
/conf/*
!/conf/jingle_profiles
!/conf/dialplan

将两个子目录(dialplan,jingle_profiles)上传到github。

我想将这些子目录克隆到根文件树(/ usr / local / freeswitch)中,并让它们保持同步,但不删除其他所有子目录。

编辑:

我在以下时得到的错误:

sudo git clone https://github.com/dgmcguire/freeswitch.git

fatal: destination path 'freeswitch' already exists and is not an empty directory.

2 个答案:

答案 0 :(得分:2)

git clone需要一个空目录,但后续的pull不会对忽略文件做任何事情。

因此,只需在/usr/local/freeswitch内创建一个空子目录,在该子目录中执行git clone,然后将此子目录的内容移至/usr/local/freeswitch

应该是这样的:

mkdir /usr/local/freeswitch/git_tmp
cd /usr/local/freeswitch/git_tmp
git clone https://github.com/dgmcguire/freeswitch.git
mv /usr/local/freeswitch/git_tmp/* /usr/local/freeswitch/
rm -r -d /usr/local/freeswitch/git_tmp

我不是linux的人,所以在使用的命令中可能会有一些错误 - 但是意图应该是明确的。

答案 1 :(得分:-1)

.gitignore与github没有特别关联或上传内容。它控制git在检查未跟踪文件时考虑的文件。

我建议你多了解一下git是如何工作的。一个非常非常好的资源是ProGit - here's,它讨论.gitignore,但你应该阅读前几章。