2.1删除分支
删除分支用参数-d,删除时git可能会提示该分支没有被完全merged,如果确定要删除的话,可以使用参数-D
git branch -d 分知名
2.2创建分支并切换到新分支
git checkout -b 新分知 基于已有的分支/某个commit
2.3修改最新commit的message
git commit --amend
2.4修改老旧commit的message
message作为commit的数据结构中的一个属性,对message做出修改后,commit的ID也会变化
git rebase -i 被修改commit的父亲
注:此变基的行为限于在自己的分支做变更,没有贡献到团队的集成分支上;如果已经贡献到集成分支上,就不能轻易的随意变基
使用reword参数
2.5将连续的多个commit整理成1个
git rebase -i 被修改commit的父亲
使用squash参数
2.6比较暂存区和HEAD所含文件的差异
git diff --cached
2.7比较工作区和暂存区所含文件的差异
git diff -- <filename>
2.8将暂存区恢复成和HEAD一样
git reset HEAD
2.9让工作区的文件恢复为和暂存区的一样
git checkout -- filename
2.10取消暂存区部分文件的更改
git reset HEAD <filename1> <filename2>
2.11消除最近的几次提交
git reset --hard 某个commit ID
注:此条命令会导致HEAD指向命令中的commit,工作区和暂存区会恢复成命令中commit的状态
2.12查看不同提交的指定文件的差异
git diff 分知名1 分知名2 (-- <filename>) #比较两个分支
或
git diff commit1的ID commit2的ID (-- <filename>) #比较两个commit
2.13正确删除文件
git rm <filename>
此操作后git会将删除文件的状态直接添加到暂存区
2.14开发中临时加塞了紧急任务怎么处理?
其中一个办法是使用如下命令:
git stash
可以使用如下命令查看stash列表:
git stash list
当紧急任务我完成之后,可以使用如下命令恢复开发紧急任务之前的状态:
git stash apply #不会删除stash中的信息
或
git stash pop #同时删除status中的信息
2.15如何指定不需要git管理的文件
添加以 .gitignore 命名的文件,在该文件中设置不需要git管理的文件的类型或者文件的后缀或者符合不需要git管理的文件的规则,具体可参考github提供的针对不同语言的配置。