【问题标题】:Working with GIT branch使用 GIT 分支
【发布时间】:2015-04-28 08:14:15
【问题描述】:
我非常了解 GIT 工作流程。我有一个 master 分支,然后我签出了一个 develop 分支。之后,我检查了一个feature 分支。在feature 分支上,我编辑了一个文件。当我结帐回到develop 分支时。我看到该文件已被编辑。我开始不明白,因为我认为当你对一个分支上的文件做某事时,它不会影响另一个分支上的同一个文件,直到你合并两个分支。当我在feature 分支上编辑该文件时,有人可以解释为什么它会影响develop 分支上的同一个文件吗?谢谢!
【问题讨论】:
标签:
git
git-branch
git-workflow
【解决方案2】:
当您在分支上编辑文件时,您从该分支编辑该版本。当您想要更改到另一个分支时,您必须先提交您的更改,或者您可以使用git stash 保存该状态,如果您想在该分支上再次工作,您可以使用git stash pop 恢复它。
当您更改了文件时,可以更改分支,只要您要更改的分支上的文件没有被修改。但是你必须要有耐心,然后你就会有来自开发分支的状态。当文件发生更改时,您会收到错误消息。
【解决方案3】:
当您从主分支签出到另一个分支并对该分支进行更改时,您应该始终使用“git stash”将更改存储在该分支上,或者您可以提交更改并将该分支推送到远程服务器。
【解决方案4】:
您的理解可能需要一些改进。
Checkout 会更新索引和工作树,但如果您修改了文件的索引和/或工作树内容而新的 checkout 没有,您的修改将被保留。
如果新的结帐也修改了该文件的内容,您甚至可以在结帐期间使用 --merge 选项让 git 将这些更改与您的更改合并(如果您和新结帐已更改文件,您不会要求它合并更改)。
因此,如果您在一个文件中并注意到应该在另一个分支上完成的修复,您切换到该分支,仅添加一个修复,提交,然后切换回来。您的工作树不是用于处理分支,而是用于处理内容并记录您喜欢的更改。
为了确保您没有错过任何其他基础知识(您在这里所问的是非常基础的东西),我会说您不知道的想法回到所有文档关于 git 的任何事情。用全新的眼光看待它。