在远程仓库中将Git推送到特定文件夹

11
我该如何推送文件到远程仓库的特定文件夹中?在本地C盘上,我的目录结构如下:
myfolder/
    .git
    folder1
    folder2
    folder3
    folder4
    .gitignore

我在这个文件夹中执行了git init命令。之后我执行了git add .git commit -m "My first commit"。现在我想将它推送到VSTS远程仓库,该仓库包含相似的结构:

https://helloworld.visualstudio.com/VSTS_folder/_git/VSTS_folder

VSTS_folder/
   greenFolder
   redFolder
   blueFolder
   blackFolder
   yellowFolder
   .gitignore
   README.md

其中VSTS_folder是存储库的名称。greenFolderredFolderyellowFolder中已经有一些代码了。我想要做的是将本地内容推送到一个空的远程文件夹blackFolder中,而不是将我的内容推送到根目录并搞乱存储库。我曾尝试使用git remote add origin https://helloworld.visualstudio.com/VSTS_folder/_git/VSTS_folder/blackFolder,但没有成功。请问哪种适当的Git命令可以实现这个目标?谢谢。

3个回答

11

这不是 Git 的工作方式。你只有一个名为 VSTS_folder仓库。创建该仓库的人并不理解 Git 仓库是什么。

你需要克隆该仓库,这将给你整个仓库的副本。然后你可以添加额外的代码。

如果所有这些文件夹包含完全独立的项目,彼此之间没有共享,那么你应该考虑将它们拆分成单独的仓库。

你还会受益于静下心来阅读一篇 Git 教程,以更好地理解这些概念。


我有一个iOS项目,当我推送我的代码时,它会说仓库大小超过100mb了。现在我已经在gitignore中加入了pods,但仍然无法成功推送。您能否建议我如何推送我的完整代码? - Chandni
@Chandni 这是完全无关的问题。如果您有新的问题,请提出新的问题。 - Daniel Mann

5

对于Git版本控制系统,它通过分支(而不是文件夹)将更改推送到远程repo。

所以你需要将本地内容移动到blackFolder中,然后从远程repo(VSTS git repo)拉取更改,最后将分支推送到VSTS git repo

详细步骤如下:

# In your local git repo
rm -Rf .git #it's uncessary to commit at first in your local repo
git init
git remote add origin https://helloworld.visualstudio.com/VSTS_folder/_git/VSTS_folder -f
mkdir blackFolder
mv * blackFolder
mv .gitignore blackFolder
git pull origin master
git add .
git commit -m 'add local stuff to remote repo blackFolder'
git push -u origin master

现在本地文件已经被推送到VSTS Git仓库下的blackFolder文件夹中。


这些命令会创建一个本地黑色文件夹 "mkdir blackFolder mv * blackFolder mv .gitignore blackFolder" 我不理解的是为什么需要“git pull origin master”? - Abdul-Kareem Abdul-Rahman

3
git add .\<folder name>
git push

这应该是你所需要的全部。我刚刚完成了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接