新的博客地址

@[toc]

前言

I、常用脚本

1.0 提交并Push到远程仓库脚本

  • 提交当前的修改代码并push到远程仓库的shell 脚本
#!/bin/sh
# dirname $0,取得当前执行的脚本文件的父目录
# cd `dirname $0`,进入这个目录(切换当前工作目录)

# cd `dirname $0` 
#alias gitadd='cd `dirname $0` && git add . && git commit -m /!* && git push'
git add .
git commit -m $1
git push
exit 0
  • 用法:
devzkndeMacBook-Pro:weiliu devzkn$ kngit  批量上报列表

1.1、初始化本地项目并push到远程仓库的脚本

devzkndeMacBook-Pro:bin devzkn$  kngitinit git@github.com:zhangkn/KNBin.git
  • 脚本内容
#!/bin/sh
# dirname $0,取得当前执行的脚本文件的父目录
# cd `dirname $0`,进入这个目录(切换当前工作目录)

# cd `dirname $0` 
#alias gitadd='cd `dirname $0` && git add . && git commit -m /!* && git push'
#!/bin/bash
#
# NOTE: You need to `brew install git` on Mac
# 
# by @kunnan
# https://github.com/zhangkn/KNAlipayWalletTweakDemo
# 在存在的项目中,创建git 仓库,并上传到远程仓库地址
#
# usage: kngitinit  SSHURL git@github.com:zhangkn/KNAlipayWalletTweakDemo.git


usage() {
  echo "在存在的项目中,创建git 仓库,并上传到远程仓库地址"
  echo
  echo "Usage: $0 {SSHURL}"
}

if [ ! -n "$1" ] ;then
  echo "Invalid url $1"
  usage
  exit 1
fi
# 变量赋值不要有空格
var=$1
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 git@github.com:zhangkn/ 结果是 KNAlipayWalletTweakDemo.git
var=${var##*/}
#%/* 表示从右边开始,删除第一个 / 号及右边的字符
var=${var%.*}
echo "# $var" >> README.md
#echo "# " >> README.md
git init
git add .
git commit -m "first commit"
git remote add origin $1
git push -u origin master
exit 0

II、合并分支

  • [【git merge的用法 及github.io无法访问的解决方案】(Git和SVN有什么异同?)

](https://blog.csdn.net/z929118...

III 、回滚相关命令

  • 让文件回到最近一次git commit或git add时的状态
  • git checkout --
devzkndeMacBook-Pro:taokesearchtweak devzkn$ git checkout --  Tweak.xm
  • 用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

IV 、文件比较

  • 比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
devzkndeMacBook-Pro:weiliu devzkn$     git diff weiliu/weiliu.xm
  • 查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
git diff --cached
git diff --staged

显示的是下一次commit时会提交到HEAD的内容(不带-a情况下)

  • 显示工作版本(Working tree)和HEAD的差别
git diff HEAD
  • 直接将两个分支上最新的提交做diff
git diff topic master 或 git diff topic..master
  • 输出自topic和master分别开发以来,master分支上的changed
git diff topic...master
  • 查看简单的diff结果,可以加上--stat参数
git diff --stat


  • 查看当前目录和另外一个分支的差别
git diff test
  • 显示当前目录和另一个叫'test'分支的差别
git diff HEAD -- ./lib

显示当前目录下的lib目录和上次提交之间的差别(更准确的说是在当前分支下)

  • 比较上次提交commit和上上次提交
git diff HEAD^ HEAD
  • 比较两个历史版本之间的差异
git diff SHA1 SHA2

see also

  • 删除 目录 以及目录内部的文件
rm -rf .git

iOS逆向
44 声望15 粉丝