git常用命令总结
2015-11-29 16:45
274 查看
现在git已经是很常见的代码管理工具了,我也已经使用了很久,但一直没有系统学习过,总是导致很多命令都是乱用,不明白含义,今天就系统的总结一下git常用的命令,以便以后查看。
git模块说明
git对于代码的管理分为了四个模块,分别是本地工作区,暂存区,本地仓库,远端仓库。git的命令都是基于这四个工作区来进行改变的,下面一一简单说下个人的理解。
本地工作区:就是工程目录,比如我是使用idea,用idea打开git工程以后,对于所有的代码修改,就是记录在本地工作区。
暂存区:当修改代码以后,改变的这部分代码是保存在本地工作区的,使用了git add命令以后,所有发生的改变都会保存在暂存区中,便于后续的commit操作。
本地仓库:使用git commit命令会把在暂存区的内容提交到本地仓库,这里会生成一个commit标示,commit以后就说明代码已经保存好了,但此时别人是看不到你新修改的内容的。
远端仓库:使用git push命令以后,会把本地仓库中的内容push到远端仓库,这样以来别人就能看到你修改的内容了。
下面记录几个我在使用过程中一直没有搞明白的问题。
PS:这篇文章不会记录每个git命令的用法和含义,仅仅是记录几个我在使用过程中的觉得容易混淆的命令。
使用git checkout 新建分支
git checkout -b branchName 基于当前分支新建一个分支,名字是branchName,这里要注意是基于当前分支的,之前我在这里一直遇到问题。
git checkout -b newBranchName branchName 基于branchName分支创建一个新的分支,名字为newBranchName。
下面附上一个删除远端分支的指令。
git push origin :branchName
删除远端分支branchName,这个命令有点奇怪,它的意思是用我本地的空分支覆盖到远端的指定分支,当然就是删除了。
git reset和git revert的区别
两者都是回滚,撤销的意思,但是含义确大不相同。
git reset commitID 否认历史,commitID以后的提交将被全部删除,并且不能恢复,git官方文档上面特别说明,在任何时候,都不应该使用reset一个commit。
git revert commitID 将当前commitID对应的修改全部清除并且提交,这个时候会新产生一个commitID,这个操作并不会删除其他的commit记录,是安全的,也就是如果你想基于commit去做回滚操作,一定要使用revert而不应该使用reset。
使用git reset 命令撤销本地修改
git reset命令是撤销暂存区的内容,本地工作区会保留所有的修改,便于再次add操作。
git reset –hard 不但会撤销暂存区中的内容,也会撤销本地工作区的内容,也就是还原到开始状态。
注:git reset只能操作已经tracked的文件,具体哪些是tracked哪些是untracked得文件,可以使用git status进行查看。
对于untracked的文件,我们可以手动进行删除,也可以使用git clean进行删除。
其他的执行都比较简单,这里就不一一列出了。
上面都是我个人的理解,如有错误的地方欢迎各位大侠指正。
git模块说明
git对于代码的管理分为了四个模块,分别是本地工作区,暂存区,本地仓库,远端仓库。git的命令都是基于这四个工作区来进行改变的,下面一一简单说下个人的理解。
本地工作区:就是工程目录,比如我是使用idea,用idea打开git工程以后,对于所有的代码修改,就是记录在本地工作区。
暂存区:当修改代码以后,改变的这部分代码是保存在本地工作区的,使用了git add命令以后,所有发生的改变都会保存在暂存区中,便于后续的commit操作。
本地仓库:使用git commit命令会把在暂存区的内容提交到本地仓库,这里会生成一个commit标示,commit以后就说明代码已经保存好了,但此时别人是看不到你新修改的内容的。
远端仓库:使用git push命令以后,会把本地仓库中的内容push到远端仓库,这样以来别人就能看到你修改的内容了。
下面记录几个我在使用过程中一直没有搞明白的问题。
PS:这篇文章不会记录每个git命令的用法和含义,仅仅是记录几个我在使用过程中的觉得容易混淆的命令。
使用git checkout 新建分支
git checkout -b branchName 基于当前分支新建一个分支,名字是branchName,这里要注意是基于当前分支的,之前我在这里一直遇到问题。
git checkout -b newBranchName branchName 基于branchName分支创建一个新的分支,名字为newBranchName。
下面附上一个删除远端分支的指令。
git push origin :branchName
删除远端分支branchName,这个命令有点奇怪,它的意思是用我本地的空分支覆盖到远端的指定分支,当然就是删除了。
git reset和git revert的区别
两者都是回滚,撤销的意思,但是含义确大不相同。
git reset commitID 否认历史,commitID以后的提交将被全部删除,并且不能恢复,git官方文档上面特别说明,在任何时候,都不应该使用reset一个commit。
git revert commitID 将当前commitID对应的修改全部清除并且提交,这个时候会新产生一个commitID,这个操作并不会删除其他的commit记录,是安全的,也就是如果你想基于commit去做回滚操作,一定要使用revert而不应该使用reset。
使用git reset 命令撤销本地修改
git reset命令是撤销暂存区的内容,本地工作区会保留所有的修改,便于再次add操作。
git reset –hard 不但会撤销暂存区中的内容,也会撤销本地工作区的内容,也就是还原到开始状态。
注:git reset只能操作已经tracked的文件,具体哪些是tracked哪些是untracked得文件,可以使用git status进行查看。
对于untracked的文件,我们可以手动进行删除,也可以使用git clean进行删除。
其他的执行都比较简单,这里就不一一列出了。
上面都是我个人的理解,如有错误的地方欢迎各位大侠指正。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- ruby 小脚本搞定CVS服务器更换后checkout下来的工程迁移
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子
- linux系统安装git及git常用命令
- 分享下自己总结的Git常用命令
- Git 常用命令速查表(图文+表格)