我有两个不相关的(不共享任何祖先签入的) Git存储库,一个是超级存储库,由许多较小的项目组成(让我们称之为存储库A)。另一个只是一个较小项目的临时本地Git存储库(让我们称之为存储库B)。从图形上看,它看起来像这样
A0-B0-C0-D0-E0-F0-G0-HEAD (repo A)
A0-B0-C0-D0-E0-F0-G0-HEAD (remote/master bare repo pulled & pushed from repo A)
A1-B1-C1-D1-E1-HEAD (repo B)
理想情况下,我真的希望将存储库B合并到具有单一历史时间线的存储库A中。因此,看起来我最
我目前有一个如下所示的文件结构:
# C:\Repositories\VisualStudio\MyProject
.git # repository is one level above clientapp and includes other folders/paths than clientapp
afolder
clientapp
file1
file2
现在,我想将clientapp文件夹移动到一个新位置,并将其重命名为frontend。然后我只想为frontend创建一个新的存储库。在这里之前没有问题:
# inside C:\Repositories\MyProject\fron
我在存储库分支中有一个文件,我希望在它自己的存储库中有一个文件,以便用它构建一个包。
/A
-file1
-file.code
-file3
-.git
我想要:
/B
-file.code
-.git #with all the previous history for such file
/A
-file1
-file3
-.git
我希望保留我对这个文件所做的提交的历史,并且能够在主项目中继续使用它,以便在完成包之前不会丢失功能。
我认为这个类似于我想要做的事情,无论是谁的评论都推荐使用中的子模块,同时也存在保留所有原始历史的问题。
我还找到了,当我尝试主要的答案时,它
我犯了一个错误,把文件从一个git仓库复制到了一个新的仓库。文件被更改了,我发现我丢失了原始文件的历史记录,但为时已晚。
考虑下面的示例脚本。它创建一个文件,对其进行修改,并将更改提交到git存储库。之后,该文件被复制到另一个存储库并再次更改。因为文件是刚刚复制的,所以其他存储库不知道第一个文件。有没有办法恢复它的文件历史记录?基于另一个存储库(包括删除的文件)的整个存储库可以做到这一点吗?
#!/bin/bash
# create first repository
mkdir repo1
cd repo1
git init
# create file and add it to git
e
我有一个工作目录,它是一个git存储库。今天,我在文件夹和文件结构上做了很大的修改,还移动了一下.git目录。现在,尝试提交这些更改时,我得到了以下错误:
fatal: Not a git repository (or any parent up to mount parent )
我搜索了错误,并找到了git用来确定当前目录是否是git存储库的标准。原来,我的.git丢失了一些文件和文件夹:
$ ls -la .git
total 36
drwxr-xr-x 5 oli oli 4096 Apr 6 10:51 .
drwxr-xr-x 10 oli oli 4096 Apr 6