Git命令
Git配置
#从仓库中提取并提交
git init
git config --global user.name ${user_name}
git config --global user.email ${email}
git remote add ${remote} ${url}
git pull ${remote}
git add -A ${dir}
git commit -m "write sth"
git push ${remote} master
#提交分支
git checkout -d dev
git push ${remote} dev
添加删除文件
usage: git add [<options>] [--] <pathspec>...
-n, --dry-run dry run
-v, --verbose be verbose
-i, --interactive interactive picking
-p, --patch select hunks interactively
-e, --edit edit current diff and apply
-f, --force allow adding otherwise ignored files
-u, --update update tracked files
-N, --intent-to-add record only the fact that the path will be added later
-A, --all add changes from all tracked and untracked files
--ignore-removal ignore paths removed in the working tree (same as --no-all)
--refresh don't add, only refresh the index
--ignore-errors just skip files which cannot be added because of errors
--ignore-missing check if - even missing - files are ignored in dry run
# example 添加当前文件下的所有内容
git add .
usage: git rm [<options>] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing matched
# example 删除指定目录(${DIR})下的文件。>> /dev/null表示不显示输出
git rm -r --cached ${remove_dir} >> /dev/null
提取差异并打包
提取差异首先要知道两个软件的版本号
# 获取软件版本号(不加--short则获取完整id)
git rev-parse --short HEAD
git diff ${id_1} ${id_2} --name-only | xargs zip update.zip
提交
git commit -m "${comment}"
git push ${remote} ${local_branch}
自动提交脚本
#!/bin/bash
# 使用时输入提价程序的改动注释,若没有填写则默认为no comment
if [ ! -n "$1" ]; then
comment="no comment"
else
comment=$*
fi
set(user_name "")
set(email "")
set(dir "")
set(remove_dir "")
set(remove_file "")
set(remote "")
set(local_branch "")
git config --global user.name ${user_name}
git config --global user.email ${email}
# git config credential.helper 'cache --timeout=5'
cd ${dir}
git add .
git rm -r --cached ${remove_dir} >> /dev/null
git rm --cached ${remove_file} >> /dev/null
git commit -m "${comment}"
git push ${remote} ${local_branch}