`

[IOS][git]使用XCODE9时使用git commit导致代码丢失问题

阅读更多

最近新上手xcode9,发现多了一个git navigation的功能,新UI对git功能的展示比较直观,但是使用过程中发现有些比较严重的问题:代码提交后会丢失,在navigation里面找不到最新commit的name。

解决办法:后来直接使用控制台通过git命令来操作,使用git log可以找到navigation里面没有显示的提交,证明git已经接收了提交。然后我们使用命令

git branch//查找branch

 

git checkout <branch-name>

 来checkout之前的分支,会有提示

Warning: you are leaving 5 commits behind, not connected to
any of your branches:

  35a3711 test why not store git info
  b4701b6 test
  af4dd58 1
  c87be34 12
  1c3e92b wifi interference btn

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 35a3711

 这时候只需要根据提示创建一个新的分支,就可以找回丢失的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之后的版本可以改进这个问题,这样操作不是很人性化。

分享到:
评论

相关推荐

    IOS开发Git在Xcode开发环境下的使用

    ### iOS开发Git在Xcode开发环境下的使用 #### Git简介 Git是一种分布式版本控制系统,它允许开发者们在软件开发过程中追踪代码的变化历史、合并不同版本的更改并管理多个分支。对于iOS开发而言,掌握Git的基本操作...

    Git、github与Xcode的配合使用

    提交更新时,使用`git commit`命令将暂存区的改动保存到历史记录中。 远程仓库的使用涉及查看和管理远程仓库的连接。`git remote`命令用于查看、添加、删除和重命名远程仓库的引用。从远程仓库抓取数据通常使用`git...

    git-svn使用用法

    基本的使用方法包括:本地修改代码后使用git commit命令提交更改,使用git svn rebase命令同步远程svn服务器的更改,以及使用git svn dcommit命令推送更改到远程svn服务器。 总之,git-svn是一个将Git的灵活性与SVN...

    Git使用技巧.docx

    3. 使用`git commit -m "提交信息"`将暂存区的更改提交到本地仓库。 4. `git remote add origin https://github.com/name/name_cangku.git`将本地仓库与远程仓库(例如GitHub)关联。 5. 最后,使用`git push -u ...

    git安装配置以及在intellijidea中使用git的配置.pdf

    了解和掌握 Git 的基本操作,如添加文件 (`git add`)、提交 (`git commit`)、查看状态 (`git status`)、分支操作 (`git branch`) 和合并 (`git merge`) 等,对于任何开发者来说都是非常重要的技能。

    Gitlab的日常使用方法,Git命令使用

    Git的诞生源于Linux社区在使用Bitkeeper时遇到的版权问题,因此Git的设计目标之一就是速度,这使得它在处理大型项目时表现出色。Git的另一个显著特点是其分布式特性,所有的版本历史都在本地存储,即使没有网络连接...

    Git权威指南.txt

    - 使用 `git commit -a` 会将所有已跟踪文件的变化一次性提交,建议明确指定要提交的文件。 - **5.5 搁置问题的方法** - 使用 `git stash` 命令可以暂时保存当前的工作状态,待日后继续。 #### 六、Git对象 - *...

    Git使用详解结合GitLab和GitHub

    2. 在Mac OS X上安装Git:推荐通过Xcode的命令行工具进行安装,也可以使用Homebrew或其他第三方包管理器。 3. 在Windows上安装Git:可以访问Git官网下载安装程序,按照向导设置即可。安装后,运行Git Bash启动命令...

    Git和Github使用简介(An introduction to Git and GitHub)

    GitHub则是一个基于Git的代码托管平台,它不仅提供了Git仓库的托管服务,还为开发者提供了一系列的协作工具,如问题追踪、代码审查等。通过GitHub,开发者可以共享代码,并与其他开发者合作开发项目。 #### 二、...

    Git权威指南PDF完整版

    5.4 不要使用 git commit -a/ 81 5.5 搁置问题,暂存状态/ 82 第6章 Git对象/ 83 6.1 Git对象库探秘/ 83 6.2 思考:SHA1 哈希值到底是什么,是如何生成的/ 88 6.3 思考:为什么不用顺序的数字来表示提交/ 90 第7章 ...

    git安装配置以及在intellijidea中使用git的配置 (2).docx

    Git的主要功能包括添加文件到暂存区(`git add`)、提交文件到仓库(`git commit`)、查看版本历史(`git log`)、分支管理(`git branch`和`git checkout`)、合并分支(`git merge`)等。Git的强大还在于它的分支...

    Git速查手册.pdf

    - 当两个完全不相关的仓库尝试合并时,可能会遇到这个问题。通常需要先手动合并两个仓库的基础提交,然后再进行正常的合并操作。 - **Git撤回已经推送至远程仓库的提交**: - 如果误推了一个错误的提交,可以通过...

    pushgit 方法

    在iOS开发中,Xcode项目(如PlistTest.xcodeproj)通常包含许多文件和配置,包括源代码、资源文件、构建设置等。使用Git进行版本控制可以帮助开发者跟踪这些文件的变化,解决合并冲突,并确保团队成员之间的代码同步...

    git环境搭建简介

    - 推送更改前确保已经执行过`Commit`和`Pull`操作,避免出现冲突或丢失代码。 #### 三、注意事项与技巧 - **`.gitignore`文件的使用**: - **Android项目**:创建或修改名为`.gitignore`的文件,包含Android特有...

    git教程 - 廖雪峰

    - 在MacOSX上,可以通过安装Xcode命令行工具或使用图形化安装程序来安装Git。 - 在Windows上,可以下载安装程序,例如Git for Windows,它提供了图形界面和命令行工具。 创建版本库: 版本库(repository)是Git...

    progit中文手册

    - **提交更新**: 使用 `git commit -m "commit message"` 提交更改。 - **跳过使用暂存区域**: 直接提交未暂存的修改。 - **移除文件**: 使用 `git rm &lt;file&gt;` 移除文件。 - **移动文件**: 使用 `git mv &lt;oldname&gt; ...

    macos git sss

    5. **解决常见问题**:在MacOS上使用Git时,可能会遇到权限问题(如`Operation not permitted`),这通常与SIP(System Integrity Protection)有关。你可以尝试使用`sudo`或在安全模式下关闭SIP来解决问题。另外,...

Global site tag (gtag.js) - Google Analytics