情景:
流程:
注意:
https://git-scm.com/book/zh/v1/Git-分支-利用分支进行开发的工作流程
composer config -g repo.packagist composer https://packagist.phpcomposer.com
ssh-keygen -t rsa -C "[email protected]"
composer global require "fxp/composer-asset-plugin:^1.3.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。
$ git log -p -2
$ git log --stat
$ git log --pretty=oneline
$ git log --pretty=format:"%h - %an, %ar : %s"
选项 | 说明 |
---|---|
%H | 提交对象(commit)的完整哈希字串 |
%h | 提交对象的简短哈希字串 |
%T | 树对象(tree)的完整哈希字串 |
%t | 树对象的简短哈希字串 |
%P | 父对象(parent)的完整哈希字串 |
%p | 父对象的简短哈希字串 |
%an | 作者(author)的名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 -date= 选项定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久以前的方式显示 |
%s | 提交说明 |
用 oneline 或 format 时结合–graph选项,可以看到开头多出一些ASCII字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况。
$ git log --pretty=format:"%h %s" --graph
选项 | 说明 |
---|---|
-p | 按补丁格式显示每个更新之间的差异。 |
–stat | 显示每次更新的文件修改统计信息。 |
–shortstat | 只显示 --stat 中最后的行数修改添加移除统计。 |
–name-only | 仅在提交信息后显示已修改的文件清单。 |
–name-status | 显示新增、修改、删除的文件清单。 |
–abbrev-commit | 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
–relative-date | 使用较短的相对时间显示(比如,“2 weeks ago”)。 |
–graph | 显示 ASCII 图形表示的分支合并历史。 |
–pretty | 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format |
git whatchanged 每次修改的文件列表
git whatchanged --stat 每次修改的文件列表, 及文件修改的统计
git show 显示最后一次的文件改变的具体内容
git show -5 显示最后 5 次的文件改变的具体内容
git show commitid 显示某个 commitid 改变的具体内容
选项 | 说明 |
---|---|
-(n) | 仅显示最近的 n 条提交 |
–since, --after | 仅显示指定时间之后的提交。 |
–until, --before | 仅显示指定时间之前的提交。 |
–author | 仅显示指定作者相关的提交。 |
–committer | 仅显示指定提交者相关的提交。 |
来看一个实际的例子,如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试脚本(位于项目的 t/ 目录下的文件),可以用下面的查询命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
http://blog.csdn.net/wh_19910525/article/details/7468549
git commit --amend
git reset HEAD ...
git checkout -- ...
https://git-scm.com/book/zh/v1/Git-基础-撤消操作#取消已经暂存的文件
http://blog.csdn.net/lxf0613050210/article/details/50749881
git branch
git branch 分支名
git checkout 要切换的分支名
git checkout -b 新分支名
git branch -d 要删除的分支名
git merge 要与当前分支合并的分支名
# 先切换到待变基的分支
git checkout dev
# 将该分支变基到master上,使它成为 master 分支的直接下游
git rebase master
# 回到master进行快速合并
git merge dev
git fetch origin
git remote add teamone(自定义名称) 另一个远程项目
# 获取teamone的数据
get fetch teamone
git push origin origin
git merge origin/serverfix
git checkout -b 本地分支名称 origin/远程分支名
# 参看:git push [远程名] [本地分支]:[远程分支]
git push origin :serverfix
git stash
git stash list
# 应用最近的储藏
git stash apply
# 应用指定储藏
git stash apply stash@{2}
git stash drop stash@{0}
git stash pop stash@{0}
git stash show -p stash@{0} | git apply -R
# 命令太长想建立一个别名
git config --global alias.stash-unapply '!git stash show -p | git apply -R'
https://git-scm.com/book/zh/v1/Git-工具-储藏(Stashing)#从储藏中创建分支