一 前言
记录下git常用使用的场景,方便以后查阅。如有疑问欢迎指出。
二 git工作流程图
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
三 查看
命令 | 说明 |
git status |
显示当前分支变更的文件 <推荐> 如下案例, 绿色表示已经添加暂存区,红色的表示改动的文件。 |
git log | 显示当前分支的提交日志(这里是分页显示所有日志所以并不推荐使用) |
git log -n |
显示当前分支的前n条日志。<推荐>
|
git log --stat -n | 显示当前分支前n条的详细日志(包括显示修改的哪些文件) |
git diff fileName | 显示工作区和暂存区的差异 |
git show | 显示最近的提交记录,可以指定commitID |
四 分支操作
命令 | 说明 |
git branch |
显示本地分支 <推荐>
|
git branch -r |
显示远程分支 <推荐>
|
git branch -a |
显示本地分支和远程分支(应该知道怎么区分本地分支和远程分支) <推荐>
|
git branch -d/-D [branchName] |
删除本地分支(不要连同-r一起使用,否则会删除远程的分支) <推荐> 注意:不要在当前分支删除当前分支 -D :表示强制删除
|
git branch -m / -M oldBranche newBranche | 移动/重命名分支和相应的reflog。请注意-m 与 -M 的区别 |
git checkout [branchName] |
切换到指定分支名称(前提:分支名称要存在)<推荐> |
git checkout -b [branchName] | 切换并创建本地分支 <推荐> |
git merge [branchName] | 合并指定分支到当前分支 <推荐> |
git merge --abort | 放弃本次合并(在合并未提交的情况下使用) <推荐> |
git push origin --delete [branchName] | 删除远程指定分支 慎用 |
五 文件操作(回滚、增加、删除、提交、推送到远程、更新)
命令 | 说明 |
git add [file1] [file2]... | 添加指定文件至暂存区, 文件之间用空格隔开。<推荐> |
git add [dir] | 添加指定目录至暂存区(包括目录下所有文件)。<推荐> |
git add . | 添加当前目录所有变动的文件至暂存区。<推荐> |
git checkout [file1] | 恢复暂存区的指定文件到工作区 <推荐> |
git reset [file] |
重置暂存区的指定文件,与上一次commit保持一致,但工作区保持不变<推荐>
pom.xml已经在暂存区了,接下reset它。 再重新查看后发现重新回到工作区。 |
git reset --hard [commit] | 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 <推荐> |
git cherry-pick [commit] | 选择一个commit,合并进当前分支(其实可以指定多个commitid) <推荐> |
git rm [file1] [file2] | 删除工作区的文件,并且将这次删除存至暂存区中 <推荐> |
git mv [file-original] [file-renamed] | 改名文件,并且将这个改名放入暂存区 |
git commit -m [message] | 提交文件到本地仓库区 <推荐> |
git push [remote] [branch] | 上传本地分支到远程仓库 <推荐> |
git pull [remote] [branch] | 拉取远程分支代码与本地分支合并 <推荐> |
参考资料
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html