我的主git分支中有一个名为“自述文件”的文件。该文件包含以下文本:
这是主分支
我创建了一个名为'justatest'的主题分支,并编辑了其中的'Readme'文件。我编辑了这个文件(当最新的分支被检出时)说出以下内容:
这是主分支 这个文本只能在'justatest'分支中看到
当我在'justatest'主题分支时,它显示正确,但当我切换到主分支时,这是文件所说的内容:
这是主分支 这个文本只能在'justatest'分支中看到
正如您所看到的,即使我检出了主题分支,它也会在主分支中进行更改! WHY ???
最糟糕的是,如果我不喜欢我在主题分支中所做的更改并删除它,则更改主分支中的REMAIN !!那里的安全在哪里???
答案 0 :(得分:1)
如果您在主题分支中提交更改,那么您可以签出主分支并查找您的更改仅在主题分支中可见,直到您将它们合并回主分支。
示例:
[matthewh@folio temp]$ git branch
* master
[matthewh@folio temp]$ cat Readme
This is the master branch
[matthewh@folio temp]$ git checkout -b justatest
Switched to a new branch 'justatest'
[matthewh@folio temp]$ echo "This text should only be seen in the justatest branch" >> Readme
[matthewh@folio temp]$ git commit -am "Modified readme"
[justatest 1afc6c7] Modified readme
1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ git branch
* justatest
master
[matthewh@folio temp]$ cat Readme
This is the master branch
This text should only be seen in the justatest branch
[matthewh@folio temp]$ git checkout master
Switched to branch 'master'
[matthewh@folio temp]$ cat Readme
This is the master branch
[matthewh@folio temp]$ git merge justatest
Updating 88aa000..1afc6c7
Fast-forward
Readme | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ cat Readme
This is the master branch
This text should only be seen in the justatest branch
答案 1 :(得分:1)
进行编辑时,它们不属于任何分支。这些更改仅在您的工作文件夹中。如果您还没有提交一些未完成的工作,则允许更改分支 - 只要它们不与文件的已提交版本冲突。
在你的情况下,它甚至更简单。由于您刚刚创建了分支,因此master和this new分支都指向同一个提交。添加并提交更改后,切换分支将具有您期望的行为。
git add -A
git commit -m "my changes"
git checkout master
你的文件将是你分支之前的文件。
您可以通过反复执行
在已检出的最后两个分支之间进行切换git checkout -
cd
也是如此。
请查看http://progit.org/book以获取有关工作目录和索引的信息。