git命令笔记

一安装

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 — 标签相关操作

标签可以针对某一时间点的版本做标记,常用于版本发布。

  • 列出标签

$ 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的缩写,意为删除其后指定的标签。

  • 给指定的commit打标签

打标签不必要在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   查看某个文件








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值