三、快速学习创建版本库、管理修改、查看状态、分支、标签、变基、克隆远程版本库
来源:互联网 发布:程序员常用的工具 编辑:程序博客网 时间:2024/06/05 17:19
一、创建版本库
Git中,版本库(.git目录)与工作目录并排存放在同一个目录中。
首先创建一个存放项目源代码的目录,然后把这个目录初始化为版本库。
命令如下:
mkdir learnGitcd learnGitgit init之后这个版本库就可以用来记录和跟踪项目代码了。
二、代码修改
创建一个index.html文件,跟踪版本。
1)把文件添加到版本库中
要想Git跟踪这个文件,必须让它知道这个文件;
首先使用git add 命令把文件添加到版本库的暂存区,然后使用git commit命令提交到版本库。
git add index.htmlgit commit -m "add in hello world HTML"
文件或文件列表可以作为git add命令的参数。
git commit命令创建一个提交记录,提交记录存储在版本中的历史记录,每提交一次创建一个记录,并标记出代码的演进。
Git把提交者的姓名和邮件地址,以及提交留言,都添加到提交记录中。
参数-m作用是,告诉Git本次提交的提交留言为add in hello world HTML。
会输出:[master (root-commit) 8f4be3a] add in hello world HTML 1 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 index.html
2)查看提交记录
命令:
git log通过这个命令可以看到提交相关信息。
输出如下:
commit 8f4be3a27aef634e237ea2708a02dead69274523Author: GongYan <66666@qq.com>Date: Thu Jul 30 14:48:53 2015 +0800 add in hello world HTML第一行显示提交名称,该名称是Git自动产生的SHA-1码,Git通过它来跟踪提交;
git log 输出的提交名称的前七位字符和命令git commit输出的相同,git commit显示的是提交名称的缩写;
第二行显示提交者的信息;
第三行是提交日期;
最后是提交留言。
三、在项目中工作
把文件添加到版本库中后,就可以跟踪文件了。
在index.html中进行修改后可以通过git status命令查看工作目录的状态。
1)查看工作目录状态
git status输出:
# On branch master# Changed but not updated:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)##modified: index.html#no changes added to commit (use "git add" and/or "git commit -a")输出结果表明Git监测到修改,但是没有暂存。
修改过的文件在Changed but not updated下面列出来,如果要提交,需要暂存修改;暂存修改,以准备把修改提交到版本库。
Git中有三个地方可以存放代码:工作目录、暂存区、版本库。
暂存区,暂存区是工作目录与版本库之间的缓冲区,暂存区中存放的是准备提交到版本库中的修改。
2)把版本库中修改后的文件加入暂存区
这时候同样使用git add命令,这时候它告诉Git要跟踪的是一个新的修改而不是新文件。
命令:
git add index.html执行后没有输出,此时再次执行git status输出如下:
# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)##modified: index.html#Changed but not updated变为Changes to be committed,提示为待提交。
3)提交留言
把修改后的文件加入暂存区后,可以提交留言,通过git commit。
git commit -m "add something to index" -m "allows for a more semantic document."这里的git commit使用了两个-m参数,Git可以接受任意多次提交留言的输入,每次另起一段。
通过git log来浏览提交的留言。
git log -1输出如下:
commit 86e6bb88e6198275bd29ce6fa880ae82064f1322Author: GongYan <669338805@qq.com>Date: Thu Jul 30 19:04:19 2015 +0800 add something to index allows for a more semantic document.
这里引入了git log的一个新参数-1,可以通过改变数字来限制命令git log输出的提交条目的个数。
四、理解并使用分支
分支是维护项目中并行历史记录的方法。
从Git工具的角度讲,想怎么用分支就怎么用,但是在实际应用中,需要根据具体情况来确定。
有两种分支比较有用:用来支持项目的不同发布版本的分支;以及用来支持一个特定功能的开发的分支。
1)创建一个新分支
创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称。新创建的分支基于已经存在的父分支。
git branch dev master
该命令从主分支上创建一个叫dev的分支,主分支是Git默认的分支。
在之前创建的index.html文件后加入新的一行,然后利用git commit提交到版本库。
git commit -a -m "add new line"命令git commit 带了上一个-a参数,它告诉Git提交全部修改过的文件。
现在主分支上是最新的修改,而dev分支上还是未修改过的。
2)切换分支
切换分支使用git checkout命令。
切换到dev分支上:
git checkout dev命令执行后输出:
Switched to branch 'dev'上面提示切换到分支dev中。
此时打开文件index.html文件查看,之前在主分支添加的内容不见了。
五、发布版本
1)标签的使用
给Git中的代码打标签,意味着在版本库的历史中标记出特定的点,这样将来就容易找到相应版本的代码。
打标签使用git tag命令。
git tag 1.0 dev以上命令中的两个参数分别指明了标签的名称和希望打标签的点,它们分别为1.0和dev分支的末梢(所对应的版本,或者说所对应的提交)。
用不带参数的命令git tag可以查看版本库中的标签列表。
[gongyan@gongyan learnGit]$ git tag 1.0[gongyan@gongyan learnGit]$目前只显示了刚刚打过的标签1.0。
2)变基命令
变基命令git rebase,把一条分支上的修改在另一条分支的末梢重现。
现在有两条分支上有不同的提交,通过变基命令进行整理。
先切换回主分支:
git checkout master然后运行命令git rebase:
git rebase dev
后面跟一个参数,希望变基到哪条分支的末梢,就使用哪条分支名称做参数。
输出:
Current branch master is up to date.
变基的意思是:改变分支的基底,假定有分支A和分支B,它们的分叉点是版本Y,Git的实现方法是,如果站在分支B上告诉Git”我要变基到A的末梢“,那么Git会把从版本Y到分支B的当前末梢之间的所有提交,顺序加到分支A的末梢上去,生成新的分支B及其末梢,而分支A及其末梢则没有任何变化。
3)删除分支
删除分支使用git branch命令,需要加上-d参数。
git branch -d dev输出如下:
Deleted branch dev (was 86e6bb8).表示删除分支dev。
4)通过已有标签创建分支
可以从打标签的地方创建一条分支。
使用命令git branch。
git branch dev 1.0命令最后改成发布的标签名称。
5)为代码发布创建归档文件
通常情况下,将标签对应的版本内容打包成一个tar或者zip包就可以了。
可以利用git archive命令进行归档处理。
git archive --format=tar --prefix=dev-1.0/ 1.0 | gzip > dev-1.0.tar.gz该命令有三个参数,第一个,--format指明要产生tar格式的输出;第二个,--prefix指明包中所有的东西都放到dev-1.0/目录下。
最后1.0指明需要归档的标签名称。
命令git archive也可以产生zip文件,命令如下:
git archive --format=zip --prefix=dev-1.0/ 1.0 > dev-1.0.zip
Git可以与远程版本库打交道,分享本地的工作成果,或者复制其他的版本库到本地。
可以使用git clone克隆远程版本库。
git clone git://github.com/GongYan/test.git test命令git clone带有两个参数:远程版本库的位置和存放该版本库的本地目录。
- 三、快速学习创建版本库、管理修改、查看状态、分支、标签、变基、克隆远程版本库
- 学习CVS( 2.0.2.4)系列----(三)查看文件历史版本、提取历史版本内容和创建标签和分支
- git从版本库创建、从远程克隆或本地新建,配置KEY,合并分支到提交到远程版本库等步骤
- Git:远程分支、远程版本库
- svn版本库分支管理
- 查看repo库上分支版本
- git创建远程版本库
- git创建远程版本库
- git 创建远程版本库
- git clone从远程主机克隆一个版本库
- git分支管理 创建、推送、查看并删除远程分支
- 安装Git 创建本地版本库版本库,文件上传,远程仓库的管理
- git总结(6)里程碑,分支,远程版本库
- git版本分支管理
- SVN分支版本管理
- gradle管理版本分支
- 版本管理-Git提交特定版本到远程库
- git版本控制管理系列-----第十二章 远程版本库
- 图片滚动
- 好看的datagridview
- Excel开源组件介绍
- ios 开发小技巧
- windows内核研究
- 三、快速学习创建版本库、管理修改、查看状态、分支、标签、变基、克隆远程版本库
- PopupWindow setOutsideTouchable 问题
- MySQL数据表的CRUD(増、删、改、查)操作
- Android: mediaplayer went away with unhandled events
- C++--String类型各种重载函数的实现
- the constructor AlertDialog.Builder(new View.OnClickListener() ) is undefined
- OC学习----可变数组与不可变数组
- Monkey常用命令详解
- Window及document对象