一、git各种状态
git status
(1)暂存区的文件
以蓝色显示,可以使用 “get reset HEAD”命令将他移除暂存区
(2)本地修改的文件
以红色显示,可以使用"git add"添加到暂存区或者“git checkout --”取消本地修改,使用服务器的版本
(3)没有加入版本控制的文件
以红色显示,可以使用"git add"添加到暂存区
二、具体事例分析
1. 取消已经暂存的文件
git reset HEAD <file>...
2. 删除文件
git rm
如果出现上面的情形,需要先"取消对文件的修改"
git checkout -- <file>...
3.提交或者更新出现以下的错误
error: Your local changes to the following files would be overwritten by merge
(1)git stash
https://blog.csdn.net/daguanjia11/article/details/73810577
然后git pull
这样就把服务器的所有代码更新下来了
再git stash pop,进行代码合并
如果合并成功,那就万事大吉了,如果出现冲突,还得解决冲突
(2)针对文件回退本地修改,使用
git checkout HEAD file/to/restore
把所有的修改 git add然后提交
4. "deleted"文件的处理
git reset HEAD xxx 把文件找回来
git checkout -- xxx 还原
注意:git checkout -- 后面的文件使用git的相对路径,不要使用全路径
5. -bash: syntax error near unexpected token `('
添加反斜杠转义一下
https://stackoverflow.com/questions/23598642/sh-exe-syntax-error-near-unexpected-token
6. 出现合并失败
`Please enter a commit message to explain why this merge is necessary,especially if it merges an updated upstream into a topic branch。`
1、当出现上述情况,可按键盘左上角的“Ese”退出键;
2、输入“:wq”,注意是英文输入状态下的冒号,然后按下“Enter”键即可。(个人觉得这个方法好, “ :wq”是啥意思呢???学Linux操作系统时的命令: 强制性写入文件并退出。)
You have not concluded your merge.Exiting because of unfinished merge
保留本地代码,中止合并–>重新合并–>重新拉取
$:git merge --abort
$:git reset --merge
$:git pull
7. Git代码回滚
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码
还原到最新代码:git pull
8. 忽略烦人的UserInterfaceState.xcuserstate
打开终端,cd 到工程主目录,执行以下命令
1、git rm --cache */UserInterfaceState.xcuserstate
2、git commit -m "Never see you again, UserInterfaceState"