每当我创建新目录时,git分支跟随我

时间:2013-03-28 04:13:01

标签: git

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

例如,我在mac

的sites文件夹中创建了一个新目录
cd sites
me$ mkdir mynewdirectory

如果我从sites目录执行'git branch',它会显示

* master
  refactor

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

 git branch
* master
  refactor

然后我做了'git status'并获得了很长的

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

这些都显然与我想要开始的新项目无关,而我猜测是我难以推送到新远程起源的部分原因。

有没有办法可以在造成最小伤害的同时摆脱所有这些?

2 个答案:

答案 0 :(得分:1)

听起来你已经在你的主目录(~)中初始化了一个Git仓库,或者你正在创建子目录的所有目录的父目录。如果你在Git仓库的子目录中,您可以使用

获取仓库的根目录
$ 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 

答案 1 :(得分:1)

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