一安装
git.exe官网下载githttp://git-scm.com/
双击安装,全部用默认配置即可
鼠标右键打开gitbash
键入如下命令设置用户名和邮箱,用于提交代码是的身份信息
$git config --global user.name lisi
$git config --global user.email xxxx@qq.com
二使用:
①git branch命令
新建分支
$git branch test
切换到test分支
$git checkout test
查看所有分支(本地和远程)
$git branch -a
查看本地分支
$git branch
查看远程分支
$git branch -r
②git stash暂时存放命令
查看存放库列表
$git stash list
清除存放列表
$git stash clean
保存工作状态用于处理冲突
$git stash(git stash a)
将保存的状态还原到index区(通常在git stash和git stash pop之间使用git pull拉取代码方式处理冲突)
$git stash pop(git stash pop --index stash@a)
③git pull命令
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
$ git pull origin next:master
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin next
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
$ git fetch origin
` $ git merge origin/next
Git也允许手动建立追踪关系。
git branch --set-upstream master origin/next
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名
$ git pull
上面命令表示,当前分支自动与唯一一个追踪分支进行合并
④git push命令
$ git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin master上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
$ git push origin :master
# 等同于$ git push origin --delete master(不写本地分支名等于删除元查过你分支)
如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。
$ git push origin上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push
$ git config --global push.default matching(配置matching方式表示git push会推送所有对应的远程分支的本地分支)
# 或者$ git config --global push.default simple(配置simple方式表示git push会推送当前分支到远程对应分支)
⑤git reset撤销命令
撤销某个index区文件
$git reset HEAD a.xml
撤销全部文件,全部放回工作区
$git reset HEAD
撤销所有修改,并且不放回工作区
$git reset --hard
撤销提交
git reset --hard HEAD^彻底回退到某个版本,本地源码也会变为上一个版本的内容
git reset --soft cmmmit-id只是撤销了commit的提交记录,commit改动的代码依然存在,很受用。
git reset commit-id只保留源码,回退commit和index信息(HEAD^表示上一个版本,HEAD^^表示上两个版本,HEAD~3表示上三个版本)
⑥git diff查看不同
git diff:是查看working tree与index file的差别的。
git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)
git diff --cached:是查看index file与commit的差别的。
⑦git clean -n 提示那些文件可以移除
git clean -n提示那些文件可以移除
git clean -n -X提示.gitignore中标注要移除的文件
git clean -X -f移除提示要移除的文件
⑧git merge合并分支
合并test分支
$git merge test
合并分支出现冲突要撤销(方式一)
$git merge --abort
合并分支冲突后不撤销解决冲突在提交一下(方式二)
<!--------------------加点内容---------------------!>
项目初始化
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:rrtlong/test1.git
git push -u origin master
项目开发过程中可能会碰到,Git服务器需要升级维护等而进行的迁移
迁移的方法详细说明:
1、从原地址克隆一份 project 版本库,比如原版本在 serverA 上。
git clone git@serverA:/project.git
2、然后到以镜像推送的方式上传代码到 serverB 服务器上。
cd project
git push --mirror git@serverB:/project.git
3. 删除本地代码
cd ..
rm -rf project
4. 直接从新服务器 serverB 上 Clone 到本地就可以了。
git clone git@serverB:/project.git
这种方式可以保留原版本库中的所有内容,当然在迁移过程中也是可以修改项目的仓库名称的
实际上本地的代码 不用删除,而是直接修改 .git中 config 文件也是可以让本地的代码重新指向新服务器的
//签名
查看keystore文件的MD5和SHA1
keytool -list keystore debug.keystore
在Android程序开发基于完成后,需要对未签名的应用进行签名后才可发布。这样做的目的是能够更安全的保护你的应用程序。这里,就说一下不使用IDE,基于命令行的方式对APK文件进行签名。
第一步:生成RSA密钥对
keytool -genkeypair -alias magick.keystore -keyalg RSA -validity 400 -keystore magick.keystore
-genkeypair 指定生成密钥对
-alias 密钥对的别名
-keyalg 密钥对用于的算法,这里用的是RSA
-validity 密钥对的有效期,单位为天
-keystore 密钥对存储的文件名
输入后,根据提示输入相应的内容就好了。
第二步:生成未签名的apk文件
这个就随便生成一下了,比如在ant debug后,会生成一个 403Bible-debug.apk 文件,这个是采用调试签名的,一般未签名的文件是含有unsigned的。
第三步:对未签名的apk进行签名
jarsigner -verbose -keystore magick.keystore -signedjar Magick.apk Magick_unsigned.apk magick.keystore
-verbose 输出签名详细信息
-keystore 指定密钥对的存储路径
-signedjar 后面三个参数分别是 签名后的APK包 未签名的APK包 和 密钥对的别名
签名时,会要求输入密钥对的密码,这个是你在生成密钥时输入的密码
第四部:优化apk包
这一步是可选的,用来将apk包进行整理,以适应设备的读取等
zipalign -f -v 4 Magick.apk Magick_zip.apk
-f 强制覆盖已有的文件
-v 输出详细内容
4 指定档案整理的字节数,一般为4,及32位。如果以后android的设备有64位的,可能要改成8吧。
Magick.apk 是未整理的apk文件名
Magick_zip.apk 是整理后的apk文件名
至此使用命令行对android应用的发布以及优化就算完成了。
git tag — 标签相关操作
来源:https://blog.csdn.net/wangjia55/article/details/8793577/
标签可以针对某一时间点的版本做标记,常用于版本发布。
$ git tag # 在控制台打印出当前仓库的所有标签
$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签
git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
# 创建轻量标签
$ git tag v0.1.2-light
# 创建附注标签
$ git tag -a v0.1.2 -m “0.1.2版本”
创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。
与切换分支命令相同,用git checkout [tagname]
查看标签信息
用git show
命令可以查看标签的版本信息:
$ git show v0.1.2
误打或需要修改标签时,需要先将标签删除,再打新标签。
$ git tag -d v0.1.2 # 删除标签
参数d即delete的缩写,意为删除其后指定的标签。
打标签不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log
获取)。
# 补打标签
$ git tag -a v0.1.1 9fbc3d0
通常的git push
不会将标签对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器
注意:如果想看之前某个标签状态下的文件,可以这样操作
1.git tag 查看当前分支下的标签
2.git checkout v0.21 此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)
3. cat test.txt 查看某个文件