Git分支没有按我预期的方式工作

Git分支没有按我预期的方式工作,git,Git,在我的项目主分支中,我提交更改:git提交-a 创建并切换到新分支机构:git checkout-b newbranch 试试看 意识到“stuff”的工作方式与我想象的不一样,所以切换回master:git checkout master,并打算从那里继续。。。但请注意,newbranch中添加的一些文件仍在TextMate中。。。所以 我键入git status我仍然可以看到我认为留在newbranch的所有东西都列在“未跟踪文件”下 我尝试:git reset——很难让我回到最后一次提交…

在我的项目主分支中,我提交更改:
git提交-a

创建并切换到新分支机构:
git checkout-b newbranch

试试看

意识到“stuff”的工作方式与我想象的不一样,所以切换回master:
git checkout master
,并打算从那里继续。。。但请注意,newbranch中添加的一些文件仍在TextMate中。。。所以

我键入
git status
我仍然可以看到我认为留在newbranch的所有东西都列在“未跟踪文件”下

我尝试:
git reset——很难
让我回到最后一次提交……但newbranch的变化仍然存在


我遗漏了什么?

如果某些文件未被跟踪,那么git不会对这些文件做任何事情。

如果某些文件未被跟踪,那么git不会对这些文件做任何事情。

你遗漏了什么?嗯,问题中的文件是未经追踪的,git不会用十英尺长的杆子去碰那些文件

老实说,如果你不打算做任何事情,可能就没有理由签出一个新的分支

你可以像平常一样尝试新的改变。如果您不喜欢看到的内容,但希望稍后使用新代码,您可以将其隐藏起来,如下所示:

git stash save "Some changes that didn't work out."
如果你真的想让它消失,你所要做的就是:

git clean -d --dry-run
然后,如果确定:

git clean -df

你错过了什么?嗯,问题中的文件是未经追踪的,git不会用十英尺长的杆子去碰那些文件

老实说,如果你不打算做任何事情,可能就没有理由签出一个新的分支

你可以像平常一样尝试新的改变。如果您不喜欢看到的内容,但希望稍后使用新代码,您可以将其隐藏起来,如下所示:

git stash save "Some changes that didn't work out."
如果你真的想让它消失,你所要做的就是:

git clean -d --dry-run
然后,如果确定:

git clean -df

因为您有未跟踪的文件(我假设您没有提交它们),所以您有一个脏的工作目录。如果还想清除这些,可以使用clean命令:

git clean -df

d修饰符指定您也要对未跟踪的目录进行操作。f修改器指定力。如果默认情况下未指定此参数,Clean将不会删除内容。您可以添加x修饰符,以防您也想删除被忽略的文件,但我不建议这样做。

因为您有未跟踪的文件(我假设您没有提交它们),所以您有一个脏的工作目录。如果还想清除这些,可以使用clean命令:

git clean -df

d修饰符指定您也要对未跟踪的目录进行操作。f修改器指定力。如果默认情况下未指定此参数,Clean将不会删除内容。您可以添加x修饰符,以防您也想删除被忽略的文件,但我不建议这样做。

从描述的症状来看,您可能有未跟踪的文件。切换分支时,未跟踪的文件将保留

清除未跟踪的文件

git clean -dfx
将更改的文件重置为当前所在分支的标题

git reset --hard

从描述的症状来看,您可能有未跟踪的文件。切换分支时,未跟踪的文件将保留

清除未跟踪的文件

git clean -dfx
将更改的文件重置为当前所在分支的标题

git reset --hard


啊。。。所以,在理论上。我应该在纽伯兰做这些?然后,当我切换回master时,它们会被删除…然后我可以删除newbranch?或者,有没有办法删除所有未跟踪的文件?删除未跟踪的文件是通过
git clean
完成的。有用的选项:-n(假装)-f(强制),-d(dirs),-X(仅忽略)-X(也忽略)如果你在newbranch,你可以提交所有文件(
git add.
我想,但我不确定)。这样你就不会有任何未跟踪的文件。但我不知道你是否可以不用普通的旧
rm
@Tobu:Cool就删除未跟踪的文件!我不知道。啊。。。所以,在理论上。我应该在纽伯兰做这些?然后,当我切换回master时,它们会被删除…然后我可以删除newbranch?或者,有没有办法删除所有未跟踪的文件?删除未跟踪的文件是通过
git clean
完成的。有用的选项:-n(假装)-f(强制),-d(dirs),-X(仅忽略)-X(也忽略)如果你在newbranch,你可以提交所有文件(
git add.
我想,但我不确定)。这样你就不会有任何未跟踪的文件。但我不知道你是否可以不用普通的旧
rm
@Tobu:Cool就删除未跟踪的文件!我不知道。默认情况下,你需要添加f修饰符,正如我在回答中提到的。我喜欢这个工作流。我想我将来会用它。谢谢
-n
--dry run
的同义词默认情况下,您需要添加f修饰符,正如我在回答中提到的。我喜欢此工作流。我想我将来会用它。谢谢
-n
的同义词--dry run
clean-X
非常有用,它已经取代了
使clean
对我来说。这真的取决于你在用什么编程。对于我在.NET中的工作流,-X是绝对不允许的。
clean-X
非常有用,它已经取代了
makeclean
对我来说。这实际上取决于你在用什么编程。对于我在.NET中的工作流,-X是绝对不允许的。