zoukankan      html  css  js  c++  java
  • 版本控制

    版本控制:

    版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

    版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。

    为什么要用版本控制:

    一个最简单的开发团队,也许就两三个人,他们共同完成一个软件的开发。每个人都在修改、添加、删除着自己本地硬盘上的代码,当他们把这些代码汇总起来时,麻烦出现了。到底谁改了哪些文件,具体是文件里的哪部分被改动过?A的修改会不会把B的修改覆盖掉?汇总的工作变得很危险,需要非常小心,一旦出错后果不堪设想。显然此时,效率将会是无比的低下,如果某个地方出错,可能整个汇总工作就要重来一遍。

    如何进行版本控制:

    下载安装Git

    Git跟踪谁修改了项目,所以必须提供一个用户名和电子邮件地址。当然,如果你忘记了这一步,在首次提交(commit)代码的时候Git将提示你提供这些信息 。
    $ git config --global user.name "username"
    $ git config --global user.email "username@example.com"
    创建项目
    首先创建一个文件夹,名字为git_practice 。文件夹下面创建一个简单的python程序:新建文件hello_world.py,代码为
    print 'Hello World!'

    忽略文件
    扩展名为.pyc的文件是自动生成的,因此我们无需让Git也跟踪它们。这些文件存储在目录__pycache__中。为了让Git忽略它们,我们创建一个名为.gitignore的特殊文件(这个文件以句点打头,且没有扩展名),并在其中添加下面一行内容:
    __pycache__/
    这让Git忽略__pycache__/目录下的所有文件。


    创建文件,也可以在项目目录下右键进入Git Bash,并输入linux命令touch .gitignore

    初始化仓库
    你创建了一个文件和一个.gitignore文件,现在可以初始化一个仓库了。为此,打开一终端窗口,并切入到git_practice文件夹,键入git init命令:

    输出表明Git在git_practice文件夹下初始化了一个空仓库。仓库是Git主动跟踪的一组文件。Git用来管理仓库的文件都存储在隐藏的文件夹.git/中,删除它将会丢弃项目的所有历史记录。
    检查状态
    执行其他操作前一般会检查当前状态,git status命令:

    在Git中,分支是项目的一个版本。从这里的输出可知,我们位于分支master上。提交是项目在特定时间点的快照。Git指出了项目中未被跟踪的文件: .gitignore和hello_world
    将文件加入到仓库中
    命令git add . 将项目中所有的未被跟踪的文件加入到仓库中(并未提交,只是让Git关注它们),git status再次检查状态:

    执行提交
    命令git commit -m “Started project。”拍摄项目的快照,-m让Git将接下来的消息‘started project’记录到历史记录中。再次查看状态git status

    查看提交历史
    你每次提交时,Git都会生成一个包含40字符的独一无二的引用ID。git log可以查看提交历史。但并非所有情况下你都需要所有这些信息,Git提供了一个选项,可以查看更简单版本——标志--pretty=oneline指定显示两项最重要的信息:提交的引用ID以及为提交记录的消息。

    你可以通过help来获取更多git命令详细信息

  • 相关阅读:
    Codeforces 1291 Round #616 (Div. 2) B
    总结
    刷新DNS解析缓存+追踪+域名解析命令
    数学--数论--Hdu 5793 A Boring Question (打表+逆元)
    Lucene.net(4.8.0) 学习问题记录六:Lucene 的索引系统和搜索过程分析
    LeetCode 117 Populating Next Right Pointers in Each Node II
    LeetCode 116 Populating Next Right Pointers in Each Node
    test test
    LeetCode 115 Distinct Subsequences
    LeetCode 114. Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/hkhk/p/10475859.html
Copyright © 2011-2022 走看看