git使用简介
来源:互联网 发布:dota2数据查询app 编辑:程序博客网 时间:2024/06/07 01:33
一、git基本信息
什么是git?
git是一款开源的分布式版本控制工具,在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的。
git的起源
作者是Linux之父:LinusBenedictTorvalds
当初开发git仅仅是为了辅助Linux内核的开发(源代码管理)。
git的现状
在国外已经非常普及,国内并未普及(在慢慢普及),越来越多的开源项目已经转移到git。
二、源代码管理类别
1. 集中式:只有一台代码仓库服务器,其他电脑作为客户机。 所有的源代码均保存在服务器端。用户可以使用checkout命令从服务器下载代码,用update命令从服务器更新代码,用commit命令上传本地代码到服务器。 缺点:必须要联网操作。
集中式版本管理工具运行流程如下:
2. 分布式
分布式版本管理工具运行流程如下:
三、git命令行使用基本介绍
1. 为了演示操作流程,先创建一个文件夹:
2. 初始化git仓库(git init), 命令执行完毕后,就会在git_test文件夹下创建一个 ".git" 仓库了。
3. 配置用户名及邮箱信息
3-1) config "user.name" ***。
3-2) config "user.mail" ***。
3-3) 终端输出配置后的信息: cat filename。
4. 添加单个文件,并且添加到工作区
4-1)用touch命令添加文件。
4-2)add命令将文件添加到 "暂缓区"。
4-3) commit命令将 "暂缓区" 的内容添加到本地仓库的分支中区, 注意: commit 命令最好写出对应的注释信息。
一次性提交多个文件
4-4) 这里的add命令,add后面追加的值此时不是单个文件,直接写成 "." 就可以。
4-5)commit命令最后也不需要追加文件名称。
5. 查看log
5-1) git log: 查看所有的提交日志。
5-2) git log 文件名:查看指定文件的提交日志。
5-3) git log --pretty=oneline 以简洁的形式,展示日志。
6. 查看版本信息
6-1) 为了后面命令的演示;首先,我手动在Person.m文件中添加了一些内容,如下图。
6-2) 使用add和commit命令将更新后的Person.m提交到本地仓库。
6-3) git reflog命令就可以将所有的版本信息打印出来,如下图所示。其中,黄色的内容就是版本号。
7. 跳转到任意版本
7-1) git reset --hard HEAD^ : 跳转到上一个版本。
7-2) git reset --hard 版本号 : 跳转到指定的版本号代码,往前往后都可以。
8. 显示修改信息
通过命令 git diff Person.m 可以很清晰的看出,工作区中的内容与存储区中内容的差别。
9. 与服务器交互使用
以上所介绍的命令均是在本地建立git仓储,并且进行的操作。如果想要与远程服务器进行交互,可以使用以下命令:
1. git clone serverurl: 从远程服务器下载源代码。
2. git pull serverurl: 将远程服务器的源代码更新到本地。
3. git push serverurl: 将本地仓库更新的信息上传到服务器。
四、git工作原理
1. 工作区(Working Directory):仓库文件夹里除 .git目录以外的内容。
2. 版本库(Repository):.git目录,用于存储记录版本信息。
2-1)暂缓区 (stage)
2-2)分支(master):git自动创建的第一个分支。
2-3)HEAD指针:用于指向当前分支。
git add 和 git commit的原理:
1. git add:把文件修改添加到暂存区。
2. git commit:把暂存区的所有内容提交到当前分支。
工作原理图如下:
注:可以使用图形化管理工具SourceTree来代替命令行完成git源代码管理, 下载地址: http://download.csdn.net/download/qqmcy/8661137 。
- git使用简介
- git使用简介
- git 使用简介
- git使用简介
- git使用简介
- git使用简介
- git使用简介
- git使用简介
- Git使用简介
- Git使用简介
- git使用简介
- git使用简介
- GIT命令使用简介
- git使用简介
- git使用简介
- Eclipse使用Git简介
- Git 使用简介
- Git Flow 使用简介
- nyoj57 6147问题
- Java项目经验——程序员成长的关键
- const char*, char const*, char*const的区别
- 个人笔记 js 06 子页面获取父页面的元素的方法
- 关于Xutils网络访问
- git使用简介
- redis入门
- 零基础用react-native开发android app
- LSD直线检测
- 4.4.5 The Message Handler
- 简单Dream-查找oracle官方文档的方法
- 数据表编辑类型第二讲——单项选择
- Data Structure(1)---线性表
- 游戏设计的236个技巧:游戏机制、关卡设计和镜头窍门——互动出版网