我想启动一个新的 git 存储库,但使用外部 3rd 方存储库的文件作为我的起点。
我有一个空的存储库,它位于分支 master 上,其中没有文件。我现在想添加文件作为我的第一个提交,但应该从另一个 git 存储库复制。
有没有一种 git 方法可以做到这一点,或者应该签出存储库并将文件复制到我的存储库中。
我想启动一个新的 git 存储库,但使用外部 3rd 方存储库的文件作为我的起点。
我有一个空的存储库,它位于分支 master 上,其中没有文件。我现在想添加文件作为我的第一个提交,但应该从另一个 git 存储库复制。
有没有一种 git 方法可以做到这一点,或者应该签出存储库并将文件复制到我的存储库中。
如果您想保留远程存储库中的历史记录,可以这样做:
# Initialize your local repository
git init
# Add the source-repo where you want to pull the files from
git remote add source-repo <URL of Source repo>
# Make git fetch the history for the source-repo
git fetch source-repo
# Merge from BRANCH_NAME of source-repo into
# the current branch (which should be called master by default)
git merge source-repo/BRANCH_NAME
如果您只想要一个提交来添加(即合并)文件,而不是多个提交,您可以使用squash-merge。截至目前(2013 年 3 月),git不支持对空仓库进行 squash 合并。因此,在进行此类壁球合并之前,您至少需要进行一次提交。
所以你可以做这样的事情:
# Initialize your local repository
git init
# Add the source-repo where you want to pull the files from
git remote add source-repo <URL of Source repo>
# Make git fetch the history for the source-repo
git fetch source-repo
# Create a dummyfile and commit the change
touch dummyfile
git add dummyfile
git commit -m "Dummy file change."
# Create a squash merge from BRANCH_NAME of source-repo into
# the current branch (which should be called master by default)
git merge --squash source-repo/BRANCH_NAME
无需签出和复制。您只需要让 git 知道远程存储库,然后您就可以从中合并,如下所示:
git remote add the-remote-repository <url of remote repo>
git remote update
git merge the-remote-repository/master # or whatever branch you want to pull in