2014.5.7 git学习
来源:互联网 发布:java输出保留两位小数 编辑:程序博客网 时间:2024/05/04 19:36
用git有一段时间了,但只是照着sdebootcamp上的照做,对于其原理和命令的含义一知半解。今天等待code review的间隙,终于有空系统学习一下,并搞清楚他的工作机制。特别鸣谢这个博客:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743862006503a1c5bf5a783434581661a3cc2084efa000。
首先,Git是用于版本控制的工具,版本控制简单说来,就是记录下每次修改,在开发过程中,用Git来为工程添砖加瓦。版本控制的基本工程就是提交版本,同步版本,撤销提交等等。
我理解的Git原理是这样的:
第一步:通常是从远程同步过来的一个原始版本,或者就是自己新建的一个版本,无论如何,初始状态时本地有一个版本,远程有一个版本。
第二步:在本地版本中做一些修改。Git的版本控制在本地有两个区域,暂存区域和提交的版本区域。对于任何修改,用git add <file>将文件提交到暂存区域,然后用git commit将所有暂存区域的文件修改提交到本地版本区域。
第三步:在工作中,有些提交错了或者不合适需要撤销。
1、使用 git reset --hard <version-id>可以回退到本地的某个版本号,用git log可以查看提交历史和对应版本号
2、使用 git checkout --<file> 可以讲工作区中某个文件的修改丢弃掉,回退到暂存区或者本地版本区中的最近版本。
3、如果在暂存区要撤销掉这个文件,使用 git reset HEAD <filename>
4、要将本地版本库中的某个文件删除,使用 git rm <filename>
第四步:使用 git push将本地版本推送到远程仓库。
以上的这些内容支撑了我这几天在本地的git操作。但是还有很多内容需要学习。
很重要的一点就是branch的概念。
一个branch其实就是一系列提交所串成的一条线,有一个指针指向某个提交的节点。使用git checkout -b <branchname>可以在当前的branch上创建一个新的branch,其实就是new了一个指针指向当前的提交节点。以后所有的提交都基于此指针,这个指针指向新的提交节点,而本来的branch的指针依然停留在原来的地方。我觉得说不太清楚,需要用图辅助理解,还是参考开头的博客好了。。。
一般来说,我们新建一个branch,在此基础上进行开发,完成后,将这个branch合并到原来的branch上。原来的branch成为master,新建的branch称作dev,开发完成dev后,使用git branch master切换回master分支,然后使用git merge dev,将dev合并到master上。然后使用git branch -d dev将dev分支删除。
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
目前就先这样吧~还有标签管理等等内容,需要后续学习。
- 2014.5.7 git学习
- Git学习7:Git中的里程碑
- GIT学习笔记(7)
- GIT学习笔记(7)
- 【git】git学习笔记
- 【Git】Git学习手册
- Git学习 -- Git 安装
- Git学习-GIT安装
- 【Git学习】git常用命令
- git学习:git常用命令
- git 学习
- git 学习
- Git学习
- Git 学习
- GIT学习。
- git学习
- Git 学习
- git 学习
- python 3.x 与python 2.x语法细节差异比较
- linux中shell变量$#,$@,$0,$1,$2的含义解释
- 通讯录2.0 控制台 SQL2005
- [乐意黎原创] 关于JavaScript中apply与call的用法意义及区别
- Hadoop中两表JOIN的处理方法
- 2014.5.7 git学习
- 在MyEclipse中开启tomcat后在控制台没有任何输出,而网页可以正常访问,这说明了服务器已经启动,而Console没有输出。
- JAVA基础知识点
- C#中的ip地址,tcp异步通信
- [Cocos2d-x]Windows下eclipse 环境配置----CDT
- 工作随想02
- 模块管理常规功能自定义系统的设计与实现(34--终级阶段 综合查询[1])
- RelativeLayout子控件垂直居中
- Titanium Module 模块开发(二)蓝牙控制 Module