Git 使用中的一些细节
2017-01-06 16:24
369 查看
git stash 的常用场景
git stash 将当前工作区修改的代码,缓存到缓存区中git stash list 查看缓存区的列表,所有的缓存都能看到
git stash pop [缓存区索引] (不给索引,默认拿出当前所有) 将放入缓存区的 代码拿出来,并从缓存列表中删除
$ git stash list stash@{0}: WIP on test2: d94cc61 test stash $ git stash pop stash@{0} modified: tt.txt
git stash apply [缓存区索引] (不给索引,默认拿出当前所有) 将放入缓存区的 代码拿出来,但不从列表中删除
应用场景1:如果在拉取代码的时候,提示本地有修改,不能拉取时,但是你不想提交本地修改,这是就可以使用
git stash 把你修改的代码放入 缓存区中,这是本地工作区目录就干净了,再 git pull , 拉取成功后,
再 git stash pop 或者 git stash apply 把缓存区的代码拿出来
1. git pull //拉不下来时 2. git stash // 把当前工作区的代码放入缓存区 3. git pull // 可以拉取成功 4. git stash pop // 或者 git stash apply 从缓存区把之前缓存的代码拿出来 5. //如果拿出来后冲突了,打开编辑器删掉冲突代码 6. git add 代码文件 // 解决冲突后,重新添加和提交代码 7. git commit -m '提交注释'
应用场景2:如果在 git stash 放入缓存区后,不小心 执行了 git stash clear 清空了缓存区的 列表,这时所有
修改的代码就没了,执行如下命令找回
1. git log --graph --oneline --decorate $( git fsck --no-reflog | awk '/dangling commit/ {print $3}') 2. 复制刚缓存的 sha1值,一般是最新的在最上面, 3. $ git stash apply 106adb6 //106adb6 就是sha1值,不用pop 是因为 pop是从列表中拿取得
--graph --oneline --decorate 这三个参数可不加,个人喜好
忽略永远不提交的文件
git update-index --assume-unchanged 文件名 //永远的忽略某个文件,让git 不追踪 git update-index --no-assume-unchanged /path/to/file #恢复跟踪
解决在windows 下git 不区分文件名大小写问题
//在windows下不区分大小写,导致文件名大小写修改后,git 不能追踪变动。
//使用以下命令,可以让git 追踪文件名大小写变动。
git config core.ignorecase false
解决文件或文件夹大小冲突
error: The following untracked working tree files would be overwritten by merge:
有时候本地代码什么都没改,但是拉取时,报错,很可能是因为文件大小写的问题,同一个文件,本地是小写,远程已经改为大写,就可能会出现上面的报错
解决方法1: 解决当前的冲突
git rm --cached <filename> //filename 是本地文件 //修改文件名 mv <本地小写文件> <远程大写文件> git add <本地修改之后的大写文件> git commit -m '本地小写文件,修改为大写文件'
避免以后遇到这样的问题
git config core.ignorecase false // 让git管理的文件 大小写变得敏感
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 快速使用Git管理"码云"或者"Github"
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- Git批量修改历史commit中的user.name 和user.email
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git 教程之标签详解
- Git 教程之基本操作详解
- Git 教程之工作区、暂存区和版本库详解
- Git 教程之创建仓库详解
- Git远程操作详解
- Git 教程之远程仓库详解
- Git 教程之安装配置详解
- Git 教程之工作流程详解
- 25个 Git 进阶技巧(翻译)
- Git的使用规范流程总结
- 简单谈谈Git中的回滚操作