参考
https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93
文件的状态变化周期
.gitignore # https://github.com/github/gitignore
git status
git status -s #状态简览
git status --short
git diff
git diff --staged #比对已暂存文件与最后一次提交的文件差异
git diff --cached #查看已经暂存起来的变化
git add xxx
git commit xxx
git commit -m "xxx"
git rm xxx
git mv xxx xxxc
git log
git log -p -2 #显示每次提交所引入的差异(按 补丁 的格式输出),使用 -2 选项来只显示最近的两次提交
git log --stat #除了显示基本信息之外,还附带了每次提交的变化
git log --pretty=oneline #oneline 会将每个提交放在一行显示,--pretty 使用不同于默认格式的方式展示提交历史
git log --pretty=format:"%h - %an, %ar : %s" #输出对后期提取分析格外有用
git log --since=2.weeks # 限制输出长度 --since 和 --until 这种按照时间作限制的选项很有用
git checkout -- xxx
git reset HEAD #撤消之前所做的修改
git remote
git remote -v #显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote add #添加一个新的远程 Git 仓库
git push origin master
git remote show origin
git remote rename xxx xxxc
git remote remove xxx
git remote rm xxx
git checkout testing
git log --oneline --decorate --graph --all #输出提交历史、各个分支的指向以及项目的分支分叉情况
git checkout -b #创建新分支的同时切换过去
git merge xxx
git branch -d xxx
git branch -D xxx #强制删除
git push origin --delete xxx
分支管理
git branch
git branch -v #查看每一个分支的最后一次提交
git branch --merged #查看哪些分支已经合并到当前分支
git branch --no-merged #查看所有包含未合并工作的分支
git pull #会查找当前分支所跟踪的服务器与分支, 从服务器上抓取数据然后尝试合并入那个远程分支。
#git pull 相当于是一个 git fetch 紧接着一个 git merge 命令
git fetch #服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容
git remote show
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA
git format-patch -1
git am xxx.patch # 打补丁
git apply xxx.patch
#git format-patch详解
git format-patch HEAD^ #打包最近的一个patc,有几个^就打包几个patch的内容;或git format-patch -n
git format-patch -n1 -n2 #打包版本n1与n2之间的patch:
git format-patch xxx #某次提交以后的所有patch:,xxx是commit名
git format-patch -n xxx #某次提交(含)之前的几次提交:,xxx是commit名
git format-patch xxx..xxx #某两次提交之间的所有patch:,xxx是commit名
git format-patch xxx --stdout > xxx.patch # 将所有patch输出到一个指定位置的指定文件
git config --global core.editor vim
nano 退出方式
ctrl+x ,输入y