Git 部分命令总结
2017-04-22 本文已影响13人
永远保持一颗进取心
说明: 现在只是一部分总结,在以后的工作中会逐渐加入更多的笔记!若读者有更多需求可参考一下链接。
参考链接:
- https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf
- http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
- https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-代码回滚:Reset、Checkout、Revert的选择
- https://www.cnblogs.com/kidsitcn/p/4513297.html
0. 查看仓库当前状态
$ git status //可以查看当前状态,包括工作区、暂存区和版本库;而且有提示命令
1.配置命令
因为 Git 是分布式版本控制系统。所以每个机器必须自报家门:名字和email。
注意 git config 命令的 --global 参数用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
$ git config --global user.name "your name"
$ git config --global user.email "your email"
查看配置信息
git config - -list //查看当前仓库配置信息
git config - -global - - list //查看(电脑当前用户)全局配置信息
git config - -system - - list //查看(包括其他用户)全局配置信息,一般用不到
2.初始化一个 Git 仓库:
$ git init
3.添加修改到暂存区(stage or index)
$ git add <file>... //可以反复使用,也可以同时添加多个文件(文件名之前用空格隔开)到暂存区
$ git add . //添加当前目录的所有文件到暂存区
4. 提交修改到版本库
$ git commit -m"xxx" // 将添加提交到Git仓库(版本库),xxx处是填写提交说明,方便查找;
$ git commit -a -m"xxx" // 将 add 和 commit 命令集中在一起用
5. 查看区别
$ git diff //查看工作区和暂存区之间的区别
$ git diff --staged //查看暂存区和当前版本之前的区别
$ git diff branchA branchB //查看 branch 之间的区别
6. 查看提交历史
$ git log //列出当前分支的版本历史信息
$ git log --pretty=oneline //列出当前分支的简单的版本信息
$ git log --pretty=oneline -n X //查看当前 branch 最近X(次数)次 commit 信息
7. 清理暂存区
更加详细查看文章开头参考链接4
$ git reset --soft HEAD //工作区和暂存区都不受影响,相当于没改动
$ git reset --mixed HEAD //将当前改动从暂存区中移除,但这些改动还保留在工作区
$ git reset --hard HEAD //完全舍弃没有 commit 的改动
--soft: 工作区和缓存区不收影响
--mixed: 默认选项,暂存区和指定的 commit 同步,但是工作区不受影响
--hard: 工作区和暂存区都和制定的 commit 同步
8. 版本回退
git reset HEAD^ //回退到上一个版本 多少个 ^ 就回退多少个版本
git reset HEAD~x //回退 x 个版本,例如 1 就回退 1 个版本,相当于 HEAD^
注:在 reset 和 HEAD 之间可以填入参数 --soft, --mixed, --hard, 意义与第 7 点相同
9.远程
远程先开好分支然后拉到本地
$ git checkout -b feature-branch origin/feature-branch
本地先开好分支然后推送到远程
推送本地的feature-branch(冒号前面)分支到远程 origin 的 feature-branch (冒号后面的)分支(没有会自动创建)
$ git push origin feature-branch:feature-branch
其他命令
$ cd .. //返回上一层目录
$ mkdir [directory name] //创建文件夹
$ pwd //显示当前文件路径
$ rm [file] //删除文
$ rmdir [directory] //删除空文件夹
$ sudo rm -r -f [directory] //删除包含文件的文件夹