切换到master并返回工作分支将显示在Git中修改的文件

时间:2019-05-29 13:44:29

标签: git git-checkout

我正在library_backend项目上工作,它是git仓库,有2个分支:

  1. 大师
  2. 多语言。

我在multilanguage分支中进行了一些更改,并将其推送到其远程分支,之后,我想检查master分支上的某些功能。

因此,我已切换到master分支,并在检查后已切换回multilanguage分支,但现在 它已修改了文件 ,即books_model.php,如果我在几秒钟前将其推送,该如何修改文件?

按如下所示,您可以看到我在完成远程分支后所做的事情:

ABC@ABC-PC MINGW64 /c/xampp/htdocs/library_backend (multilanguage)
$ git checkout master
Switched to branch 'master'
M       application/models/api_model/books_model.php
Your branch and 'origin/master' have diverged,
and have 4 and 10 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

ABC@ABC-PC MINGW64 /c/xampp/htdocs/library_backend (master)
$ git checkout multilanguage
Switched to branch 'multilanguage'

ABC@ABC-PC MINGW64 /c/xampp/htdocs/library_backend (multilanguage)
$ git status
On branch multilanguage
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   application/models/api_model/books_model.php

no changes added to commit (use "git add" and/or "git commit -a")

3 个答案:

答案 0 :(得分:0)

此更改很可能已经就位,并且您仅推送了包含其他更改的提交。如果您在本地master分支上没有误更改此文件,当然可以这样做。

答案 1 :(得分:0)

您可以通过以下命令查看修改后的文件中发生的更改。

  

$ git diff application / models / api_model / books_model.php

这将为修改后的代码生成绿色和红色的结果。

红色表示已从文件中删除代码。

绿色表示已添加的代码。

如果您可以在此命令的结果中以绿色看到在此处所做的更改,则应转到分支“多语言”并再次添加,提交和推送该文件。

如果看不到对文件所做的更改或不想提交,则可以通过检出到同一分支“多语言”并触发此命令来还原更改。

  

$ git checkout application / models / api_model / books_model.php

希望它对您有帮助!

答案 2 :(得分:0)

虽然该问题不易重现,但您应该测试新的实验性命令git switch(仅适用于Git 2.23 +,2019年第三季度):使用选项放弃更改,它不太容易受到自动更改的影响:

git switch -f  multilanguage