1

在尝试将新项目(只有一个测试文件)推送到 github 上的新存储库时遇到了一些问题后,我发现我似乎在 git 上犯了一个巨大的错误,因为我有一个项目和分支跟随我每当我在我的 Mac 上创建新目录时。

例如,我在我的 mac 的站点文件夹中创建一个新目录

cd sites
me$ mkdir mynewdirectory

如果我从站点目录执行“git branch”,它会显示这个

* master
  refactor

如果我没记错的话,这个主和重构分支似乎来自我几周前工作的一个项目。如果我 cd 进入 mynewdirectory 并执行 'git branch' 我会得到相同的结果

 git branch
* master
  refactor

然后我做了'git status'并得到了一个很长的列表

a) Changes not staged for commit; and 
b) Untracked files

这些显然都与我想开始的新项目无关,我猜这是我在推到新的远程来源时遇到困难的部分原因。

有没有一种方法可以让我在伤害最小的同时摆脱这一切?

4

2 回答 2

1

听起来您已经在您的主目录~(回购使用

$ git rev-parse --show-toplevel

您可能不希望在 Git 存储库中跟踪整个主目录和所有文件,因此我建议mv ~/.git ~/.git.old暂时将该目录移到一边(例如,如果存储库在您的主目录中)并创建更多您希望存储在 Git 中的每个项目的重点存储库。一旦你重命名了旧的仓库,你就不应该再让它干扰你的子目录,你可以git init照常使用来创建每个项目的仓库。

我在上面说“暂时”是因为,如果您向该仓库提交了您不想永久删除的任何内容,您可能希望将其复制到新的仓库或其他地方,这样您就不会丢失它。一种方法是将旧.git目录移动到一个新的子目录中,您可以从中提取要存储在其他地方的内容,一旦将所有内容移出,您就可以删除该子目录。例如:

mkdir old_home_repo
mv ~/.git ~/old_home_repo
cd old_home_repo
git checkout -- .   # this will bring the files that were in the repo back into this directory
# copy files out of this dir, into new places you want to keep them permanently
cd ..
rm -rf old_home_repo 
于 2013-03-28T04:23:14.327 回答
1

如果您在站点文件夹中启动了 git,那么您将在所有子目录中获得该重构分支。

于 2013-03-28T04:23:58.313 回答