如何从未初始化的目录中将更改推送到Git存储库

时间:2014-06-04 03:29:11

标签: git version-control bower

我有一个来自未初始化目录中某个Git存储库的所有文件的本地副本,即没有被Git跟踪(其中没有 .git ),我已经对它进行了一些更改。如何将这些更改推送到远程Git存储库?

这些行为可以描述我的意思:

  1. git clone … ./ - 克隆存储库
  2. rm -Rf ./.git - 存储库不再初始化
  3. vi ./somefile - 介绍了一些更改
  4. 在更实际的方面:

    我有一个由bower依赖关系管理工具创建的某个库的克隆目录。我已经对这个库进行了一些更改,现在我想将这些更改推送到主库。

    我正在寻找一种使用Git重新初始化此目录的智能方法,并将更改作为单个提交推送到远程存储库。

1 个答案:

答案 0 :(得分:2)

  

我正在寻找一种使用Git重新初始化此目录的智能方法,并将更改作为单个提交推送到远程存储库。

简单:在其他地方初始化它:

cd /path/to/somewhere/else
git clone /url/to/bower
cd bower

然后在新的克隆仓库中引用您的旧文件夹(您进行了一些更改)作为git工作树

git --work-tree=/path/to/old/folder add .
git commit -m "changes'
git push

请参阅--work-tree option of the git command


理论上,您可以使用git clone -n直接在旧文件夹中执行git clone

cd /path/to/your/old/folder
git clone -n /url/of/bower .

(它可能会抱怨该文件夹不是空的,在这种情况下,git clone -n​​在外面,并移动旧文件夹中的.git文件夹)

但我更喜欢保持旧文件夹的完整性,并在单独的克隆中执行与git相关的操作。