【Git】自定义Git

.ignore

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...

好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

我们进行Android开发可以看Android.gitignore文件参考下

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

具体使用可以参考.gitignore介绍

最后一步就是把.gitignore也提交到Git,就完成了!当然检验.gitignore的标准是git status命令是不是说working directory clean

使用Windows的童鞋注意了,如果你在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。

有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:

$ git add learngit.iml
The following paths are ignored by one of your .gitignore files:
learngit.iml
Use -f if you really want to add them.

如果你确实想添加该文件,可以用-f强制添加到Git:

$ git add -f learngit.iml
warning: LF will be replaced by CRLF in learngit.iml.
The file will have its original line endings in your working directory.

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查(没有强制添加之前的文件,如果已经强制添加,执行这条命令是没有反应的):

$ git check-ignore -v local.properties
.gitignore:22:local.properties  local.properties

Git会告诉我们,.gitignore的第22行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

关于这条命令更详细的内容可以参考https://cloud.tencent.com/developer/section/1138771

配置别名

敲git命令可不可以偷懒呢?如果敲git st就表示git status那就简单多了,是可以的
我们只需要敲一行命令,告诉Git,以后st就表示status:

$ git config --global alias.st status

这意味着,当要输入git status时,只需要输入git st
当然还有别的命令可以简写,很多人都用co表示checkoutci表示commitbr表示branch

$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

在撤销修改一节中,我们知道,命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个unstage别名:

$ git config --global alias.unstage 'reset HEAD'

配置一个git last,让其显示最后一次提交信息:

$ git config --global alias.last 'log -1'

试一下

$ git last
commit c69706ca50dc9268bde8c03c5aead74688532f8e
Author: lixiaowei <944932343@qq.com>
Date:   Fri Jan 25 14:51:23 2019 +0800

    add a project

配置文件

配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中,也就是我们配置时加了--global时的配置文件:

[user]
	name = Errol
	email = xxx@qq.com
[difftool "sourcetree"]
	cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
	cmd = "'' "
	trustExitCode = true
[color]
	ui = true
[alias]
	st = status
	co = checkout
	ci = commit
	br = branch
	unstage = reset HEAD
	last = log -1

别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

配置别名也可以直接修改这个文件。

每个仓库的Git配置文件都放在.git/config文件中,也就是我们配置别名时,不加--global是的配置文件:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[branch "master"]
[remote "github"]
	url = git@github.com:944932343/learngit.git
	fetch = +refs/heads/*:refs/remotes/github/*
[remote "gitee"]
	url = git@gitee.com:runjichi/learngit.git
	fetch = +refs/heads/*:refs/remotes/gitee/*
[alias]
	las = log -1

小结

忽略某些文件时,需要编写.gitignore
如果文件已被ignore文件忽略也可以强制添加git add -f App.class
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
检查文件是否被ignore文件忽略git check-ignore -v <filename>

Git命令设置别名git config --global alias.别名 '指定代码'
显示最后一次提交信息git log -1
配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用
每个仓库的Git配置文件都放在.git/config文件中
当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值