① Ubuntu vim git log中文乱码
现在随着Githut和SNS的流行,Social Code也像Facebook在世界中流行一样,在程序猿中流行开来。而且有犹如星星之火,在程序猿中燎原开来。有Linus这样的大牛作为发明人,有Linux Kernel这样的庞大应用作为“小白鼠”做测试,再有Github这样开放的网络交流平台,Git想不火都难。所以,今天D瓜哥也赶赶时髦,玩转一下Git,这个版本管理工具。
Git,这个版本管理工具是美国发明的,所以对中文的原生支持性不是很好。在使用时,主要会遇到三个场景对中文的支持性比较差,严重影响用户体验。下面,D瓜哥就针对这三个使用场景进行分别的描述。另外,特别说明一下,我平时工作、学习最主要的系统是Windows 7。Git使用的是msysgit。所以,以下的解决方案是针对Windows系统的解决方案。
一、ls -l 显示文件列表
想想刚玩Git那会,下个msysgit,瞬间装好,信心爆棚,无视GUI(我比较喜欢Linux以及命令行),cd到某个目录下,ls查看文件,傻眼了。MD,竟然都是乱码,着实无语加郁闷了一把!这是该怎么办呢?
其实,很简单。只需要修改一下配置信息就能解决问题。这里先做个假设,假设你Git的安装目录是%GIT_HOME%。修改步骤如下:
使用文本编辑器打开文件%GIT_HOME%etcgitconfig,将下面显示的三个选项的字符集修改成如下:
[gui]encoding = utf-8[i18n]commitencoding = gbk[svn]pathnameencoding = gbk
通过这里的设置,打开Git环境中的中文支持。另外,需要特意说明一下,虽然pathnameencoding设置了文件路径的中文支持,但是为了防止不必要的麻烦出现,同时也为了提高在Bash中快速的进入某个路径,推荐使用英文路径,不要使用中文路径。
然后,使用文本编辑器打开文件%GIT_HOME%etcgit-completion.bash,然后再其中添加如下内容:
alias ls='ls –show-control-chars –color=auto'
我个人比较喜欢列表显示文件,但是msysgit安装后,不支持ll。所以,就自己手动添加上支持。在上面那行配置的下面,添加下面这行配置:
alias ll='ls -l'
玩Linux的人,应该都能看出来,其实这只是Linux命令中,给命令起了一个别名而已。
最后,使用文本编辑器打开文件%GIT_HOME%etcprofile,将下面的这个配置的字符集设置成如下:
export LESSCHARSET=utf-8 #或gbk
到这里,就大功告成了。你在Bash中,试一下,ls或者ll,是不是看到了久违的中文呢?
二、提交中文Commit Log
既然使用Git,那么肯定是要文件修改后,肯定是要提交的。但是,刚刚安装好后msysgit对Commit Log的中文支持是在是忍无可忍。没办法,这时还是要“自己动手,丰衣足食”啊。
其实,msysgit对中文Commit Log主要是因为默认的编辑器vi对中文的支持不好。所以,把默认编辑器修改成一个对中文支持比较好的编辑器即可。对于编辑器,我比较喜欢vim(在Windows下就是gVim),下面就把默认编辑器修改成gVim。步骤如下:
打开目录GIT_HOME%in;
找到vi或者vim文件(注意:没有后缀。),复制一份出来命名gvim;
,使用文本编辑器打开gvim,把里面的exec /share/vim/vim73/gvim 改成自己的Gvim目录,D瓜哥的是exec /C/Vim/vim73/gvim
运行msysgit Bash,执行命令git config –global core.editor gvim
到这里,把默认编辑器已经修改成了gVim。另外,还需要修改一下msysgit的配置项。使用文本编辑器打开文件%GIT_HOME%etcinputrc,修改下面两个配置项如下:
set output-meta onset convert-meta off
我第一次在修改完这些配置后,提交修改中还是不能很好的支持地支持中文。后来发现,主要是使用方法不对。这里,给大家提个醒,提交时应该使用如下指令:
git commit -a
注意,不要加-m的参数。否则就不能使用gVim了,也就不能支持中文了。
三、提交文件名为中文的文件
其实,D瓜哥也不知道如何修改才能很好的支持中文。不过,这里有一个取巧的方法:一般同时修改的文件都是相关的文件。所以,在添加或者提交时,可以使用-a参数,把几个文件同时添加或提交。
在这里,D瓜哥也做个留个疑问,如何才能让Git很好的支持提交文件名为中文的文件?
② git版本回退问题
git pull origin branch_name 先把服务器的代码拉下来,再push就好了吧
③ git怎么查询当前分支的版本号
#git reflog git log –pretty =oneline结果如下: Add git user profile functions for prompt display Merge pull request #4957 from TorrentKatten/master localization support for clock in candy theme Merge pull request #4956 from RobLoach/asdf Add 'asdf' plugin
④ sourcetree 的git log图怎么看
你用的是window版本的git吧!我建议你装个tortoisegit这个方便查看日志,装好之后你可以直接到你仓库文件下右键->TortoiseGit->show log可以查看任何一步骤的git log日志
⑤ 怎么查看ubuntu git版本
git查看提交历史 这是git中使用平率非常高的一个操作,git中查看提交历史的功能也非常强大,提供各种筛选和输出格式定制功能。最简单的,运行git log命令,你将看到一个详细的提交日志:git-log# 当然也可以只查看某个版本$ git log fd0a1b2信息内容都很好理解,重点说说第一行commit后这个40个字符的字符串,这是该次提交的对应的SHA-1值,在git中,会对提交(commit)、文件(blob)、目录(tree)、标签(tag)生成一个唯一的SHA-1值,git就是基于此来得知文件或目录的改动,因为这四类对象计算得到的SHA-1值都是唯一的,同时你也可以直接使用SHA-1值来指代相应的对象。比如:$ git show bdd3996# 查看某个版本下具体某个文件$ git show bdd3996 READMEgit log还有很多命令选项来定制历史记录选项 说明-(n) 仅显示最近的 n 条提交–since,–after 仅显示指定时间之后的提交–until,–before 仅显示指定时间之前的提交–author 仅显示指定作者相关的提交–committer 仅显示指定提交者相关的提交–reverse 按时间倒序显示-p 按补丁格式显示每个更新之间的差异–stat 显示每次更新的文件修改统计信息–shortstat 只显示 –stat 中最后的行数修改添加移除统计–name-only 仅在提交信息后显示已修改的文件清单–name-status 显示新增、修改、删除的文件清单–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)–graph 显示 ASCII 图形表示的分支合并历史
⑥ 如何利用git 号作为版本号 c++
首先在本地建立一个文件夹命名为manager.然后打开终端,输入cd ,把文件夹拖到cd后面,回车,输入pwd之后再回车,进入到manager文件夹下,然后开始git指令,第一步git init,在本地建立一个空仓库。之后建立一个文件名为mian.c的文件,touch main.c。在mian.c中手动输入一些文字,然后输入git status查看状态。main.c为红色说明main.c被编辑过了,现在继续编辑准备提交输入int b = 2.现在的main.c是存在工作区的,下一步是要把修改的文件添加到暂存区,git add main.c,不过~回车之后并没有什么变化,继续操作,是把暂存区里的main.c添加到本地仓库中,git commit main.c -m添加了b,如果不添加-m的话会少一个配置,会进入到一个vim模式(不可编辑),并且提示你添加一个文件,这时候需要先输入i,下面会出现一个insert,然后编辑你提交的信息,然后按esc键,在按:wq,保存并退出。所以为了不要这么麻烦,直接在后面加上-m和注释就可以了这样说明已经把修改的内容成功提交到本地仓库了!下一步,如果想回到某个版本怎么办看首先git log,看一下日志信息,或者git reflog.git log下可以看到一个40位的哈希值,这里你可以把它当做序列号就好了,也就是你的版本号。而在git reflog下,只显示你版本号的前7位,其实用的时候就用这前7位就够了。如果想回到某个版本,只需要git reset –hard 版本号就可以了在打开你的main.c你会发现他回到了你需要的地方.还有一个指令可以看到你修改的地方:首先编辑你的main.c,然后输入git diff mian.c,你会看到效果的.好了,git建立本地仓库就到这里,还有很多命令没介绍到,以后用的时候还要多多练习!
⑦ 如何查看GIT版本库相关信息
是git工具的版本吗?git –version
⑧ Git当中怎么寻找版本号,并回退以前版本当中的某个文件
简单,git log — your_path即可列出某个路径的changelog,然后进一步查commit记录就可以找到被删掉回的文件记录了比如我答的xalk/grails-app/conf/Config.groovy早已经删掉,但是可以通过git log显示最后一次该文件的递交记录拿到这个commit。git log -1 –decorate — xalk/grails-app/conf/Config.groovy
⑨ git reset怎么恢复
已经解决了,我就自问自答了直接gitreset-hard版本号就可以恢复本地的文件夹了(gitlog查看版本号)。