新的博客地址
@[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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。