博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git中的文件状态和使用问题解决
阅读量:7027 次
发布时间:2019-06-28

本文共 2135 字,大约阅读时间需要 7 分钟。

 

 

(暂存区 即Index In Git)

 

commit 到 local respository的内容,不想push,则使用git reset 将文件状态回转到staged|modified|unstaged:

git reset HEAD^   

git reset --soft HEAD^
git reset HEAD~3    (本地有3次commit未提交时用,也可以git reset HEAD^操作3次)

状态回转用git reset,或者git revert 

 

git checkout [--] <file or path>         (--是可选的)

 

git pull时,有些修改不想commit到本地仓时,可以git stash,下面三步:

1. git stash 

2. git pull
3. git stash pop

 

以树结构查看当前仓库的状态:

gitk --all &

 

git删除文件:

1. 将文件从仓库删除的同时,当前工作目录(磁盘)上也删除

git rm <file>
git rm -r <path>

2. 将文件从仓库删除,但文件继续保留在当前工作目录(磁盘)上

git rm --cache <file>
git rm -r --cache <path>

 

git从远端仓库恢复已经删除的文件(被删除的文件已经commit到本地仓)

 

 

乱码情景1

在cygwin中,使用git add添加要提交的文件的时候,如果文件名是中文,会显示形如274\232\350\256\256\346\200\273\347\273\223.png的乱码。

解决方案:
在bash提示符下输入:

git config --global core.quotepath false

core.quotepath设为false的话,就不会对0×80以上的字符进行quote。中文显示正常。

乱码情景2

在MsysGit中,使用git log显示提交的中文log乱码。

解决方案:
设置git gui的界面编码

git config --global gui.encoding utf-8

设置 commit log 提交时使用 utf-8 编码,可避免服务器上乱码,同时与linux上的提交保持一致!

git config --global i18n.commitencoding utf-8

使得在 $ git log 时将 utf-8 编码转换成 gbk 编码,解决Msys bash中git log 乱码。

git config --global i18n.logoutputencoding gbk

使得 git log 可以正常显示中文(配合i18n.logoutputencoding = gbk),在 /etc/profile 中添加:

export LESSCHARSET=utf-8

乱码情景3

在MsysGit自带的bash中,使用ls命令查看中文文件名乱码。cygwin没有这个问题。

解决方案:
使用 lls --show-control-chars 命令来强制使用控制台字符编码显示文件名,即可查看中文文件名。

为了方便使用,可以编辑 /etc/git-completion.bash ,新增一行 alias ls="ls --show-control-chars"

 

 

Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍

# 此为注释 – 将被 Git 忽略 *.a       # 忽略所有 .a 结尾的文件!lib.a    # 但 lib.a 除外/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/    # 忽略 build/ 目录下的所有文件doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

 

在填写忽略文件的过程中,我发现在IDEA里面,.gitignore中已经标明忽略的文件目录下的文件,当我想git push的时候还会出现在push的目录中,原因是因为在IDEA的git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:

git rm -r --cached .git add .git commit -m 'update .gitignore'

https://www.cnblogs.com/zzcc/p/5695883.html

https://www.cnblogs.com/kevingrace/p/5690241.html

 

Git Bash右键菜单问题

修改windows注册表信息(cmd:regedit)

https://blog.csdn.net/kyowill1988/article/details/76087513

 

Git多账号的配置,以及使用指定的publickey

 

你可能感兴趣的文章
利用人工智能提升团队包容性
查看>>
详解分布式系统本质:“分治”和“冗余”
查看>>
gRPC-Web发布,REST又要被干掉了?
查看>>
全站爬虫项目一阶段总结
查看>>
在项目中引入领域驱动设计的经验
查看>>
用关系型NoSQL回到未来
查看>>
Jeff Bean谈Flink与流式处理的5大新发现
查看>>
技术寡头争霸传之:控制开源工具,就控制了整个生态
查看>>
微软把UWP定位成业务线应用程序开发平台
查看>>
2018腾讯云+未来峰会互联网专场:腾讯云智能物联解决方案亮相
查看>>
Python数据可视化的10种技能
查看>>
关于有效的性能调优的一些建议
查看>>
微软发起Java on Azure调查,呼吁Java社区积极参与
查看>>
搭建svn仓库
查看>>
JavaScript arguments 对象详解
查看>>
[elixir! #0002] [译] 在Phoenix中实现动态表单 by José Valim
查看>>
【windows docker & centos 6 .7搭建】
查看>>
Firefox插件开发:夜间模式
查看>>
这是我第一次遇到判断ios系统版本的问题
查看>>
漏洞战争: 软件漏洞发展趋势
查看>>