Git常见问题

作者: ANoman_M | 来源:发表于2017-02-28 13:46 被阅读19次

git checkout 和 git reset 区别

首先需要知道工作区(working diretory)和暂存区(Stage)这两个概念。工作区的该概念不仅包含你实际操作、更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息,暂存区的作用则是临时存储文件的变化信息,在git add file操作之后,暂存区中将记录file文件上的修改信息。暂存区的存在更细化了时间节点,要知道commit的往往是有重大改变的版本或者是在一次修改工作整体完成之后才使用commit。而在这之间需要保存的修改,自然需要一个缓存区暂时存放。

廖雪峰的git教程中在“撤销修改”部分中,提到了几种情景和相应的git checkout与git reset命令。通过我的分析,在这个更直接地分析这两个命令的含义。

git checkout -- file;撤销对工作区修改;这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区

git reset HEAD -- file;清空add命令向暂存区提交的关于file文件的修改(Ustage);这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化

git push 与pull的默认行为和-u参数的意义

https://www.zhihu.com/question/20019419

https://segmentfault.com/a/1190000002783245

git checkout 与 git reset 进阶

http://www.tuicool.com/articles/A3Mn6f


报错信息

1.git checkout时 <> 字符串引起错误

省略<>即可

2.本地向远处push时出现  failed to push some refs to...

可能由于远程版本库与本地冲突导致。解决办法:

git pull --rebase origin master  合并代码

git push -u origin master    上传代码到github

3.显示乱码

git config --global core.quetepath false

4.Pull is not possible because you have unmerged files.

应该是因为local文件冲突了

解决方法:

以下方法引用自网络――

1.pull会使用git merge导致冲突,需要将冲突的文件resolve掉 git add -u, git commit之后才能成功pull.

2.如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.

注意:

git merge会形成MERGE-HEAD(FETCH-HEAD) 。git push会形成HEAD这样的引用。HEAD代表本地最近成功push后形成的引用。

就我的经验,有时候会莫名其妙地出现这种状况,而且Untracked files 还特别多(实际上自己可能只改了一两个文件),所以只好先保存好自己确定做出的local的修改,然后用git reset --hard FETCH_HEAD回到上次成功pull之后的点,然后再pull就没有问题了

5.You are not currently on a branch.

症状:有一次pull的时候又出现冲突,这回用“git reset --hard FETCH_HEAD”方法都不行了,出现:

$ git pull

You are not currently on a branch, so I cannot use any

'branch..merge' in your configuration file.

Please specify which remote branch you want to use on the command

line and try again (e.g. 'git pull ').

See git-pull(1) for details.

解决方法:

首先git checkout -b temp

其次git checkout master

即可恢复到master repository的状态,然后就可以pull了

相关文章

  • 最简洁的Git介绍

    一、解决问题 1、Git原理;2、Git的常见操作;3、Git常见问题以及相关操作; 二、Git原理 1、四大区域...

  • git 入门系列(一)

    git学习-commit、push常见问题及解决措施(一) git commit 当本地修改完分支,准备将暂存区的...

  • 本地项目关联远程Git仓库

    步骤 本地项目初始化 git 关联远程仓库 提交暂存 提交到分支 推送 移除 git 常见问题 如何配置邮箱和用户...

  • GIT操作结构

    git从开始的接触到熟练,以及常见问题解决方法

  • linux安装git与coding连接

    通过git将coding上的代码拉下来 主要参考的是coding的文档 Git 操作常见问题 这篇文章条例也很清晰...

  • 修改 Git 已经提交记录的 用户名 和邮箱

    修改 Git 已经提交记录的 用户名 和邮箱 有关 Git 和版本控制的常见问题。 如何更改提交的作者姓名/电子邮...

  • git/svn 技巧以及常见问题整理

    Git 实用技巧 Git乱码问题解决方案汇总 常用快捷键 常见问题 遇到多个commit回滚的情况,采用方案如下 ...

  • git常见问题

    git 切换分支时,出现HEAD detached解决方案 从master直接切换到另一分支名(drpV2.0.2...

  • git常见问题

    个人技术博客地址:http://songmingyao.com/ 环境:Ubuntu 16.04 使用Git经常会...

  • git 常见问题

    fatal: refusing to merge unrelated histories git pull ori...

网友评论

    本文标题:Git常见问题

    本文链接:https://www.haomeiwen.com/subject/mjexgttx.html