设为首页 收藏本站
查看: 789|回复: 0

[经验分享] Git基础使用教程:第一个Git项目

[复制链接]

尚未签到

发表于 2018-1-14 22:32:21 | 显示全部楼层 |阅读模式
    第一个Git管理的项目
  一个很小的HTML项目,使用。Git来记录和跟踪这个项目。包括以下内容:
  创建版本库。
  添加与修改文件。
  创建新分支。
  打标签并整理版本库。
  克隆版本库。

创建版本库 Creating a Repository
  在Git中,版本库(.git目录)是与工作目录树并排放在同一个目录中的。
  本例中,要创建一个HTML页面,给这个项目取名为mysite。
  首先创建一个同名目录“mysite”,并进入到这个目录,然后输入命令git init。
  prompt> mkdir mysite
  prompt> cd mysite
  prompt> git init
  创建完成。

代码修改
  往空版本库里面添加文件:
  创建一个名为index.html的文件,并添加文本:
  

<html>  
<body>
  
<h1>Hello World</h1>
  
<p>My first paragraph.</p>
  
</body>
  
</html>
  

  创建了一个简单的HTML文件后(把它放在mysite路径下),就可以开始跟踪版本了。
  要想让Git跟踪这个文件,须先让它知道这个文件,要分两步走:
  首先使用git add命令把该文件添加到版本库的索引(index);然后使用git commit命令提交。
  prompt> git add index.html
  prompt>git commit –m "add in hello world HTML"
  文件或文件列表可以作为git add命令的参数。
  git commit命令创建一个提交记录
  提交记录是存储在版本中的历史记录,每提交一次创建一个记录,并标记出代码的演进。
  Git把提交者的姓名和邮件地址,以及提交留言,都添加到提交记录中。
  参数-m,告诉Git本次提交的留言为"add in hello world HTML"。
  运行命令git log可以看到这个提交相关的信息:
  prompt> git log
  输出的第一行显示提交名称,是Git自动产生的SHA-1码。Git通过它来跟踪提交,使用该哈希码可以保证每个提交的名称都是独一无二的。

在项目中工作
  修改HTML文件如下:
  

<html>  
<head>
  
<title>Hello World in Git</title>
  
</head>
  
<body>
  
<h1>Hello World</h1>
  
<p>My first paragraph.</p>
  
</body>
  
</html>
  

  修改完毕,Git可以检测到文件被修改。
  命令git status会显示工作目录树的状态,即当前的视图状态。
  prompt> git status

  上面的结果表明Git监测到了修改,但还不知道如何处理它们。
  如果要提交,需要暂存(stage)修改,以准备把修改提交到版本库。
  Git有三个地方可以存放代码。
  第一个地方是工作目录树,编辑文件时可以直接在这里操作;
  第二个是索引(index),也就是暂存区(staging area)。暂存区是工作目录树和版本库之间的缓冲区。
  第三个,也就是最终的一个,是版本库。
  命令git add,可以暂存对文件刚做的修改。它跟前面添加一个新文件时使用的是同一个命令,只不过,这次它告诉Git要跟踪的是一个新的修改而非新的文件。
  prompt> git add index.html
  prompt> git status

  暂存修改过的index.html之后,执行命令git status可以看到,信息变为了Changes to be commited,index.html这行由红色变为了绿色。
  使用命令git commit时,不要忘记使用带-m的参数,并在参数后面加上提交留言,以解释修改的原因,如下:
  prompt> git commit –m "add <head> and <title> to index"
  git log可以快速浏览提交留言:
  prompt> git log
  prompt> git log -1
  命令中加入参数:-1可以限制命令输出的提交条目的个数。



理解并使用分支
  比如mysite项目的代码现在几乎可以发布了,但是还需要进行测试等工作,直到确认它达到了预期的功能和质量,而与此同时,借助分支,可以开始下一个版本的新功能的开发了。
  创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称。新创建的分支基于已经存在的父分支。
  prompt> git branch RB_1.0 master
  该命令从主分支(master branch)上创建一个叫RB_1.0的分支。
  主分支master是Git的默认分支。分支名称中的RB代表发布分支(release branch)。该前缀可以让人快速分辨出哪些分支是发布分支。
  现在来做一些新的改动。这些改动不影响准备发布的代码。
  在</body>之前增加如下代码:
  

<ul>  
<li><a href="bio.html">Biography</a></li>
  
</ul>
  

  用如下命令提交这些修改:
  prompt> git commit –a
  参数-a告诉Git提交全部修改过的文件。
  (这时弹出了一个文本文件,输入的信息是提交留言)。
  现在主分支上有最新的修改,而发布分支上还是原来的代码。
  请切换到发布分支,做发布前的最后修改。切换分支的命令是git checkout。
  prompt> git checkout RB_1.0
  转换分支后,所使用的打开文件的编辑器会提醒文件已经被修改,重新载入文件,会发现刚才在主分支上做过的修改消失了。
  可以用git status命令来查看自己在哪一个分支上:
  prompt> git status
  做发布前的最后修改:在<head>标记块中添加一些描述性的元标签:
  

<head>  
<title>Hello World in Git</title>
  
<meta name="description" content="hello world in Git"/>
  
</head>
  

  保存并修改该提交:
  prompt> git commit –a

处理发布
  添加标签
  现在是发布的时候了,要给版本打个标签。
  给Git中的代码打标签,意味着在版本库的历史中标记出特定的点,这样将来就容易找到相应版本的代码。
  prompt> git tag 1.0 RB_1.0
  以上命令中的两个参数分别指明了标签的名称(1.0)和希望打标签的点(RB_1.0分支的末梢(所对应的版本或者说所对应的提交))。
  用不带参数的命令git tag可以查看版本库中的标签列表:
  prompt> git tag
  变基
  想把RB_1.0分支上所做的修改合并到主分支上来,变基命令git rebase可以完成这项工作。
  变基是把一条分支上的修改在另一条分支的末梢重现。
  先回到主分支:
  prompt> git checkout master
  接着运行命令git rebase,后面跟一个参数:希望变基到哪条分支的末梢,就使用哪条分支名称做参数。
  prompt> git rebase RB_1.0
  变基前和变基后的版本库如下面两个图:


  
  删除分支
  作为整理工作的一部分,删除发布分支RB_1.0。
  只要标签还在,从标签到版本树起点的一连串提交记录就都在。
  这时候删除分支只是删除了分支的名字,并不会删除分支上的任何实际内容。
  prompt> git branch –d RB_1.0
  打补丁
  如果没有了发布分支,如何给1.0.x分支打补丁呢?很简单,只需要在打标签的地方再创建一条分支即可。
  前面创建分支的时候,命令的最后一个参数是新分支的父分支名称,现在只须把父分支名称改成发布标签名即可。命令如下:
  prompt> git branch RB_1.0.1 1.0
  prompt> git checkout RB_1.0.1
  运行命令git log快速查看历史记录:
  prompt> git log --pretty=oneline
  为代码发布创建归档文件
  没有必要总是把历史记录(也就是Git版本库)一起发布,通常情况下,将标签对应的版本内容打包成一个tar包或者zip包就足够了。
  Git提供了git archive命令来做归档处理。
  prompt> git archive --format=tar --prefix=mysite-1.0/ 1.0 |gzip > mysite-1.0.tar.gz
  该命令中有三个参数:
  --format指明要产生tar格式的输出。
  --prefix指明包中所有东西都放到mysite-1.0/目录下。
  1.0指明要归档的标签的名称。
  最后一段命令把git archive产生的tar文件用管道输出的方法传递给命令gzip进行压缩,而压缩结果则重定向到mysite-1.0.tar.gz压缩包里。
  创建zip文件:
  prompt> git archive --format=zip –prefix=mysite-1.0/ 1.0 >mysite-1.0.zip
  生成zip格式和tar格式的命令参数几乎一样,只是改变了传递给--format的参数,而且无需通过命令gzip管道输出,直接把归档内容保存到归档文件中。

克隆远程版本库
  git clone带有两个参数:远程版本库的位置和存放该版本库的本地目录。
  第二个参数是可选的。

参考资料
  《版本控制之道——使用Git》(Pragmatic Version Control Using Git)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435157-1-1.html 上篇帖子: Bayesian Deep Learning 下篇帖子: Windows下Git安装指南
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表