切换到另一个分支而不更改工作区文件

amo*_*fis 62 git branch git-branch

我从GitHub克隆了一个git存储库,进行了一些更改和一些提交; 我做了很多而且都很脏,所以它们不适合拉动请求.现在我所创建的分支cleanchangesorigin/master,所以它是干净的,我想在那里将我的变化一个一个不错的提交提交评论.

当我在本地主人时,我想切换到我cleanchanges但不更改文件.然后我就能承诺了.

如何在不更改文件的情况下切换分支?

我想说清楚:我在当地承诺了所有变更master.没有未提交的更改.

Gre*_*ill 55

编辑:我刚刚注意到你说你已经创建了一些提交.在这种情况下,用于git merge --squash进行单个提交:

git checkout cleanchanges
git merge --squash master
git commit -m "nice commit comment for all my changes"
Run Code Online (Sandbox Code Playgroud)

(编辑:如果您有未提交的更改,则以下答案适用.)

只需切换分支git checkout cleanchanges.如果分支引用相同的引用,则切换时,所有未提交的更改都将保留在工作目录中.

唯一一次发生冲突的情况是存储库中的某些文件在origin/master和之间是不同的cleanchanges.如果你刚刚创建了分支,那么没问题.

与往常一样,如果您一直担心失去工作,请先制作备份副本.Git的目的是在不先问你的情况下不丢弃工作.


Sur*_*hir 41

Git的.切换到另一个分支

git checkout branch_name
Run Code Online (Sandbox Code Playgroud)

  • 这将更改工作区文件,但未跟踪文件除外 (11认同)

viv*_*k85 9

最好的办法是存储更改并切换分支.要切换分支,您需要一个干净的状态.因此,存储它们,签出新分支并在新分支上应用更改并提交它

  • 您不一定需要"干净状态"来切换分支. (2认同)
  • 然后,您可以合并来自另一个分支的更改。 (2认同)