如何从远程文件夹中以不同名称命名的本地文件夹提交文件?

时间:2014-07-05 13:12:10

标签: git firefox github greasemonkey

Firefox有一个profile folder(它有一个随机名称,如r2hy5dsu.default)。

如果安装了Greasemonkey,则会在该文件夹中创建名为gm_scripts的文件夹 配置文件文件夹包含很多其他文件和文件夹,但对我来说唯一重要的是gm_scripts

所以,我想创建一个名为reponameX(不同于r2hy5dsu.default)的存储库,其中包含一个名为dirY的文件夹(不同于gm_scripts),用于保存内容后者,但我不知道这是否可能。

LOCAL                                     GITHUB
r2hy5dsu.default                  <-->    reponameX
+ gm_scripts                      <-->    + dirY
+ + ... (a lot of other things)   <-->    + + (I want to sync everything here)
+ ... (a lot of other things)     <-->    + (I don't want to sync it at all)

我的问题是:这可能吗?如果是这样,我该如何做到这一点?

到目前为止我found所有的一切都是如何创建一个与本地文件夹不同的存储库,但没有关于第二部分的存储库。

通过这种方式,它可以帮助我轻松发布并保持更新我开发和测试自己的所有脚本,而无需复制到其他地方只是为了提交它。

1 个答案:

答案 0 :(得分:0)

长期最直接的方法是直接构建边带分支,这根本不会触及您当前的结账:

#!/bin/sh
# Using only a temporary index file,
# Without touching the current checkout or using a worktree at all,
# Commit a hand-rolled commit to an arbitrary branch

$srctree=`git write-tree` # current status, `somecommit` elsewise

export GIT_INDEX_FILE=`mktemp -t`
git read-tree $srctree                    # load up the nonce index

git read-tree --prefix=dirY/ :gm-script   # load `dirY/` from indexed `gm-script`
git rm --cached gm-script                 # remove indexed `gm-script`

tip=`git rev-parse -q for-github -- 2>&-` # commit to the tip of `for-github`
git update-ref refs/heads/for-github \
    $( git commit-tree ${tip:+-p $tip} \
               -m handroll `git write-tree`
    )