问题描述
有一个workspace文件夹,这个文件夹里面有a,b,c,d 四个文件夹
假如我的github上有个项目名叫c
我是直接在workspace下的c文件夹git init,然后git clone github上的c项目这样就又多了一个c文件夹,这样好麻烦啊
如果直接在workspace git init 这样就可以只有一个c文件夹。但是 之后又怕把a,b,d的文件都push到github上。。有这样好方法?难道大家都是直接workspace 下 做仓库 ,然后写gitignore规则过滤a,b,d?
问题解答
回答1:git clone --help
git clone [--template=<template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>] [--dissociate] [--separate-git-dir <git dir>] [--depth <depth>] [--[no-]single-branch] [--recursive | --recurse-submodules] [--] <repository> [<directory>]
可以看到最后一个参数是目录名。
回答2:没明白你的意思?
我是直接git clone 对应项目地址 到workspace的,这样会有什么问题吗,没太明白?
回答3:仔细一看lz的描述,workspace下有一个文件夹dir.
git clone http://*.github.com/demo.git dir你试试这样可行不
mac 文件系统 不区分大小写.在repositroy 里有dir Dir两个文件夹.github会显示两个文件夹,你clone下来就可能只显示dir.
那么你可以在本地
mv dir dr
然后本地两个文件夹里的文件都移动了 dr文件下了.
回答4:如果你不想把其他的文件push上去,就用.gitignore过滤掉。你说的直接在c文件夹下git init会多出来c文件,你可以直接服务器上的c文件夹内容pull到本地c文件夹下不就行了吗
回答5:在workspace文件夹下的c文件夹中使用命令
cd existing_foldergit initgit remote add origin git@github.example.com:yourRepository/yourRepository.gitgit add .git commitgit push -u origin master
这样你本地的c文件夹就同步到远端github仓库了
回答6:如果已经有远程库, 并且workspace里的c项目文件夹的新增内容较少, 请进行以下操作:
删除workspace文件夹中的c项目文件夹
从远程库中克隆: git clone http://your.github.com/c.git c 命令执行后将拷贝远程仓库到本地目录, 也就说此时的c文件夹已经是本地仓库, 而与a, b, d文件夹无关.
所有的git在c文件夹中执行即可.
参考教程: 廖雪峰的git教程-远程仓库