2012-12-20 126 views
5

我已经使用GIT几个星期了,并试图了解如何在不提交文件的情况下切换分支。这就是我所做的。如何在eclipse中切换分支而不进行更改

  1. 克隆了一个git仓库并拥有一个本地主分支。
  2. 创建一个基于远程分支的新本地分支(Branch2)。
  3. 对主分支中的2个文件进行更改。

我现在要做的是从主控切换到分支2。 我对主分支所做的更改仅适用于本地开发目的,绝不应提交。 但是,当我尝试在eclipse中执行此操作(即,我双击本地分支时,我尝试切换到),它一直告诉我有未提交的更改,我需要提交,存储或重置。

任何人都可以告诉我如何我可以对本地文件进行更改,并让git忽略此更改,以便我不会收到有关此消息的提示吗?

+1

通常,如果你只有“为开发宗旨,并应永远不会被comitted“-files,你有一个像'foo.bar.dist'这样的模板文件,在设置时将它复制到'foo.bar'中,当然'/ foo.bar'在'.g​​itignore'中。原因:如果你没有明确地排除,你迟早会提交。 – KingCrunch

+0

请确保您了解“本地分支机构”以及Git的分布式功能。正在进行的开发工作应该在当地的分支机构。如果一旦它准备好了,你可以合并/推送东西到远程。如果您不想发布,请将其保留在本地。作为一种最佳实践,您应该坚持“早期承诺,经常承诺”。Git存储是强大的,但分支更是如此。 – gertvdijk

回答

3

如果您不希望更改公开,您应该将它们提交到您自己的功能分支中,而不是在主分支上。
你可以创建一个新的分支,给它一个反映变化的名字,也许前缀是类似于“experimental-”,然后在切换到其他分支之前提交给该分支。

您可以使用git存储来存储您的更改,或使用git存储将它们直接提交到Ege Akpinar提到的新分支。

+1

这里有一些真正有用的评论。谢谢。 – Eddie

+0

这里有一些真正有用的评论。谢谢。 所以基本上,如果我不想提交它们,我不应该更改主分支。我应该在新的或功能分支中执行此操作。 因此,如果我创建一个新的分支让我们说,MyNewBranch,并且我想要将这些更改并入主人,那么就像提交MyNewBranch中的更改一样简单,然后执行合并,即 git commit -a“更改说明“ git checkout master git merge MyNewBranch @PeterSmith – Eddie

+0

是的,你可以将你的分支合并到主。此外,如果主分支有新的提交,并且您想确保不会发生合并冲突,则可以重新分配分支。 如果您在重新绑定后合并,请确保使用'git merge --no-ff'来维护分支历史记录。 –

4

看看git存储。存储允许您存储未提交的更改。

选项1

git stash 
git checkout -b Branch2 

您的更改将存储在git的(本地)。当您想要重新应用这些更改时,您将执行git stash pop,它将为您应用这些更改。

选项2

git stash 
git stash branch temporarybranch 

这将带您提交的修改到一个新的分支,让他们在你身边。与前一个选项相比,这可以让您通过推送这个新分支来将这些分支保留在服务器上。

希望它可以帮助

+1

+1 git stash branch '我不知道这是可能的! –

5

注意:如果你需要从Eclipse的藏匿正在进行工作,例如:It现在supports stash

stash in EGit

相关问题