想要将文件添加到 GitHub 上现有的存储库中

问题描述 投票:0回答:1

我对使用 Git 和 GitBash 非常陌生。

我在 GitHub 上有一个名为“RepoA”的存储库,其中已经有一些文件(假设来自 FolderA 的文件)。我使用 GitBash 中的添加、提交和推送将它们上传到那里。由于一些问题,我不得不删除FolderA中的“.git”文件夹,现在我尝试在其中创建另一个“.git”文件夹,但问题是GitBash没有检测到已上传的文件。我假设我必须 git clone 存储库(?),因为我读了一些有关该问题的答案。但问题是我的分支名称“main”(我实际上想推送到它;RepoA 的一部分)显示为“master”,因此我无法提交或推送任何内容。

我的主要问题是:

  1. 我怎样才能做到这一点,以便RepoA中的文件被“.git”文件夹跟踪?
  2. 如何将FolderA中的文件添加到RepoA中的“主”分支?

我意识到手动上传也是可能的,但我真的很想尝试使用 GitBash 甚至 CMD 命令。

我再次尝试初始化 .git,但这导致所有文件都未被跟踪,我必须再次手动提交和推送。

我尝试过 RepoA 的 git 克隆,但所做的只是将文件从 RepoA 复制到我的文件夹 A 中。

github repository git-bash git-clone repo
1个回答
0
投票

.git
文件夹是 git 保存所有内务信息的地方。如果删除它,之前的工作副本将变成一个包含文件和子文件夹的基本文件夹。它会丢失所有版本控制信息、上游存储库等。 所以不要乱搞
.git
,除非你知道自己在做什么。

如果您运行

git init
创建一个新的
.git
文件夹,这是一个新存储库,没有历史记录,没有跟踪文件,也没有与您的 github 存储库的连接。您可以这样做,但您将丢失所有以前的历史记录以及与 github 上所谓的上游存储库的连接。

要找回您的存储库,我会这样做:重命名您的本地存储库文件夹,然后将 github 中的

git clone
重命名为现有工作树之外的新文件夹。正如您所看到的,这将为您提供远程存储库 (github) 所拥有的内容。它还可以让你恢复版本历史记录和所有其他 git 内容。

如果您对删除

.git
文件夹的目录中的文件进行了更改,则新克隆的存储库将不会有这些更改。您可以将所有内容复制到新克隆的存储库文件夹中。但不要复制
.git
文件夹,否则你会再次覆盖 git 元数据,你将不得不重新开始。通过这样做,您将丢失 github 所拥有的内容和删除
.git
文件夹时之间的提交信息,因此您将丢失该历史记录。没有办法解决这个问题,除非你有可以恢复的备份。但至少您会保留对任何文件的最新更改。根据需要将
git add
git commit
git push
发送到 github。

至于

main
master
:这只是 github 或本地 git 配置中的设置。您可以运行此命令来获取设置:

git config --global --get init.defaultBranch

git config --global init.defaultBranch main

--global
表示您的所有存储库。如果您忽略它并在工作树(存储库)中运行该命令,它将仅适用于该存储库。

您可以通过运行例如来切换 git 中的分支,

git checkout main

git switch main

当你提交一个 github 不知道的分支时,你可以推送该分支并告诉 github 连接这些分支。

autoSetupRemote
选项可以自动执行此操作;请参阅使用 git 自动跟踪远程分支

git config --global push.autoSetupRemote true
© www.soinside.com 2019 - 2024. All rights reserved.