Git 使用总结
git在本地仓库直接使用rm彻底删除文件,服务端还是存在
方式a: git rm
方式b: rm file; git add -u清除工作区的文件
git clean -nd 不会做实际删除操作
冲突解决
- pull强制覆盖本地文件
git fetch –all
git reset –hard origin/master
git pull- 保留生产服务器上所做的改动,仅仅并入新配置项
git stash
git pull
git stash pop
然后可以使用Git diff -w +文件名 来确认代码自动合并的情况.凭证的保存
遇到错误:fatal: unable to get credential storage lock: File exists
解决方式:git config credential.helper storegit config credential.helper wincred
git 怎么撤销add,或者remove操作到初始状态?
git reset head .
git 打标签
a. 创建附注标签(仓库中的一个独立对象)
git tag -a v0.1.2 -m “0.1.2版本”b. 创建轻量标签(指向提交对象的引用)
git tag v0.1.2结合 git 和 gradle 实现了自动版本号
def gitVersionCode() {
def cmd = 'git rev-list HEAD --first-parent --count'
cmd.execute().text.trim().toInteger()
}
def gitVersionTag() {
def cmd = 'git describe --tags'
def version = cmd.execute().text.trim()
def pattern = "-(\\d+)-g"
def matcher = version =~ pattern
if (matcher) {
version = version.substring(0, matcher.start()) + "." + matcher[0][1]
} else {
version = version + ".0"
}
return version
}
android {
...
applicationVariants.all { variant ->
if (variant.buildType.name.equals('release')) {
variant.mergedFlavor.versionCode = gitVersionCode()
variant.mergedFlavor.versionName = gitVersionTag()
}
}
}
待续