git的一些问题解决及一些使用技巧

发布时间 2023-07-21 14:41:14作者: 码农骆驼

1. git diff 文件比对时中文编码问题。

    git diff 一个有差异的文件时,如果出现中文差异,显示出的内容无法阅读,如下内容所示。这时可以通过修改git config配置几个命令来解决。
+ //<E4><BF><9D><E5><AD><98>

 

#在命令行下输入以下命令:
$ git config --global core.quotepath false          # 显示 status 编码
$ git config --global gui.encoding utf-8            # 图形界面编码
$ git config --global i18n.commit.encoding utf-8    # 提交信息编码
$ git config --global i18n.logoutputencoding utf-8  # 输出 log 编码
$ export LESSCHARSET=utf-8

 

2. 在本地创建项目并和刚创建的git项目同步的步骤

A.在项目根目录执行git init命令创建本地项目,
B.在git服务器上创建一个仓库。
C.执行git remote add origin <git path>,git_path
D.从远程分支拉取master分支并与本地master分支合并。git pull origin master:master
E.提交本地分支到远程分支:git push -u origin master

3.Git可以支持多个远程服务端,并能从其中一个读取再写入另一个。

 

#添加一个远程服务端
$ git remote add john git@github.com:test/test.git
#查看远程服务端
$ git remote -v 
origin  http://1.git (fetch)
origin  http://1.git (push)
$ git remote show
$ git remote show origin 
$ git log #查看更新记录

 

4.merge和rebase合并分支

以后你可能想合并你的变动,有两种方式可以做到这一点:
$ git checkout master
$ git merge feature83 # Or...
$ git rebase feature83

    merge和rebase的区别是,merge会尝试解决改动并创建的新的提交来融合他们。rebase则是将从你最后一次从另一个分支分离之后的改动并入,并直接沿用另一个分支的head指针。尽管如此,在你往远端服务器上推送分支之前,不要使用rebase。这会让你混乱。如果你不能确定哪个分支(哪些需要合并,哪些需要移除)。这里有两个git分支切换方式来帮助你:

 

# Shows branches that are all merged in to your current branch
$ git branch --merged
# Shows branches that are not merged in to your current branch
$ git branch --no-merged

 

5. git log的使用。

    git log可以列出历史的提交列表,如果想快速查看最近的变动内容,可以使用git log -p。这个p估计就是present的意思吧。而如果只需要看最近文件变动的摘要,可使用$ git log --stat。其它还可以通过log内容来搜索:
$ git log --author=kermit #根据指定的作者查找:
$ git log --grep="keyword" #搜索你提交信息的内容
$ git log --since=2.months.ago --until=1.day.ago #使用ActiveSupport风格的日期来缩短时间范围
$ git count-objects -v #查看数据库使用的统计

 

 

推荐一个phpstorm的Git插件:GitToolBox