最近新上手xcode9,发现多了一个git navigation的功能,新UI对git功能的展示比较直观,但是使用过程中发现有些比较严重的问题:代码提交后会丢失,在navigation里面找不到最新commit的name。
解决办法:后来直接使用控制台通过git命令来操作,使用git log可以找到navigation里面没有显示的提交,证明git已经接收了提交。然后我们使用命令
来checkout之前的分支,会有提示
这时候只需要根据提示创建一个新的分支,就可以找回丢失的commit了。
这里需要提醒的是,xcode9的git navigation function使用必须要注意要在navigation栏目里面checkout一条分支(这里的分支指的是分支名称,而不是分支里面commit的tag)才可以接收你的代码commit,如果你通过navigation回滚到其中一个提交后,忘记重新checkout分支,之后的commit就会导致丢失。原因是不checkout f分支名称,实际上你的提交是没有提交到任何的分支上的,而xcode9并不会warning,所以会出现代码回滚完后经常写一大堆代码然后提交,然后又回滚回去看前一个版本,最后回滚不回来了,发现写的代码都不见了,这就很郁闷了。
这里有一个commit跳转建议,假如你最后一次checkout的不是分支名称,而是分支里面之前的某个commit,那么,你的navigation栏会看不到分支名称后面有个current的提示,在这之后写的所有代码其实都不在这条branch上,需要你重新命名新的branch(brach from...)再commit,才会被记录。
希望xcode9之后的版本可以改进这个问题,这样操作不是很人性化。