git
廖雪峰:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
git init初始化仓库
git add添加到暂存区
git commit -m保存为快照并提交到版本库
git commit -am相当于git add和commit组合命令
git status查看工作区文件状态
git diff查看文件内容变更详情(和暂存区比较)
... diff HEAD和版本库当前版本库比较
更多diff详见 :http://www.cnblogs.com/wish123/p/3963224.html
git reset --hard +版本名 重置工作区代码为指定版本
git show 当前版本信息,以及相对于上个版本的改动
git log 版本库信息
git reflog/fsck 检查丢失的提交
git stash将工作区恢复到改动前,并将改动保存起来,以备将来使用
git stash list 查看保存变动的记录,结果 如:stash@{0}: WIP on master: a85cfb2 第三次提交
git stash apply stash@{0}恢复保存的变动
git stash clear 清除对所有变动的保存
注:在用stash apply恢复保存的变动时,如果工作区出现了新的变动,并且已commit,则很可能会造成冲突。
git checkout --+文件名 撤销指定文件的变动 回到最近一次commit或add的代码
git checkout切换分支
git rm -- + 文件名 从工作区删除指定文件,若再commit,则会从版本库里删除,若不commit,而是checkout该文件,则会恢复
reset,checkout,revert区别及应用场景:(http://www.cnblogs.com/houpeiyong/p/5890748.html)
命令 | 作用域 | 常用情景 |
---|---|---|
git reset | 提交层面 | 在私有分支上舍弃一些没有提交的更改 |
git reset | 文件层面 | 将文件从缓存区中移除 |
git checkout | 提交层面 | 切换分支或查看旧版本 |
git checkout | 文件层面 | 舍弃工作目录中的更改 |
git revert | 提交层面 | 在公共分支上回滚更改 |
git revert | 文件层面 | (然而并没有) |
创建项目子树