git的初步使用---本地代码库的使用和提交

git是一个好东西,但对于新手来说,这个工具并不好使用,因为它里面涉及到很多东西,而这些东西新手一时间是无法理解的。不幸的是,本人就是新手一枚,所以,这里并不会讲太多有关于git的原理,什么样的阶段就该做什么样的事情,先从熟悉工具的常用用法开始。

使用git,首先必须是在github上创建一个repository。我们可以在github上根据教程创建一个,这里不讲步骤,上面讲得非常清楚。

我先在github上创建一个远程库"Pratice"。由于我之前在github上已经有一个远程库了,为了防止提交文件时产生混乱,我需要为这个新的repository创建一个新的远程库。

默认下我们是有一个远程库:origin,但通过上面的操作,现在我们有新的远程库:pratice。而且我们还可以通过rename来重新命名。

通过add在分支上添加新的文件,然后再commit,-m后面的描述非常重要,当我们需要回滚代码版本的时候。如果在remote add origin的时候,出现问题,像是上面这样,可以用remote rm origin来将之前提交上去的远程库清除,这个清除是清除本地远程库。然后我们再push origin master,将该远程库的master分支上的内容push上去。如果这边出现问题,可以使用pull origin master,道理和上面的remote rm origin是一样的。

通过上面的命令,我们现在可以在github上看看我们的repository:

奇怪的是,我们明明只是想将Pratice这个文件夹推上去,但是却发现Bluetooth也推上去了。这个是因为mater这个分支中包含有Bluetooth,所以每次推上去的时候都会将Bluetooth推上去。

master是我们的默认分支,我们可以删除该分支,然后创建新的分支:

这里通过branch创建新的分支,然后通过checkout跳转到新的分支上。这里我们就不删除master,毕竟我有很多工作都是在该分支上。

创建并跳转到新的分支上后,我们可以在该分支上提交,然后再和master分支merge:

先是跳转到master分支上,然后通过diff查看两个分支上的不同,接着就是merge。没有冲突,两个分支上的内容就会合并到一块,如果有冲突,会输出相应的信息,这时候我们只要根据该信息对发生冲突的文件进行修改。

当然,上面的问题我们还是没有解决:本来只是想要推Pratice这个文件夹上去,但是却不小心把Bluetooth文件夹推上去了,怎么删除这个啊?很可惜,我没有找到简单方便的指令,我的方法就是重新创建一个新的repository,然后将正确的内容推送进来。如果读者们有好的方法,还请指出,之前已经试过了很多网上的教程,都没有任何作用。

使用git的最大好处,就是它可以随时随地的查看代码版本而不需要联网,因为它将代码版本放在了本地。

使用log可以查看自己的提交记录,注意到我们提交时候的描述信息了吧!是的,这是为了方便我们找回代码版本,当然,通过查看日期也还是可以找到的。

我们现在想要将代码回滚到第一次提交时的版本:

HEAD~1表示回滚到上一次提交,这时候打开本地的文件夹,就会发现代码已经回滚到了第一次提交时的状态。

更直接的方法就是利用每次commit时的哈希值:

只需要开头5位就行,现在我们又回滚到了merge的时候。

只要熟悉git的使用,就会发现git真的是一个好东西。

这里之所以不讲git的原理,是因为怕混淆我们的注意力,作为新手,首先应该是熟悉工具的使用,然后再掌握工具的原理,否则,在开头就死在一大堆细节中。

如果有什么问题或者好的建议,衷心希望读者能够指出,第一次使用git,总是有很多问题的。

 
 
 
标签: git

git的初步使用---本地代码库的使用和提交的更多相关文章

  1. git本地代码库回滚(webstorm下)

    git本地代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下(并没有push到远程分支上) 进行了三次修改,并分别进行了三次commit( ...

  2. Git 笔记三 Git的初步使用

    Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...

  3. Git的初步学习

    前言 感谢! 承蒙关照~ Git的初步学习 为什么要用Git和Github呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址. 接下来看看,一家公司的基本流程图: 集中 ...

  4. git学习2:版本库

    创建版本库 版本库,又称仓库,英文名为repository,版本库内的所有文件都可以被Git管理起来,即每个文件的修改.删除,Git都能跟踪. 1,在目录中创建版本库 在目录中有两种创建版本库的方法, ...

  5. git无法clone远程代码库及git代理设置

    git作为一个版本管理神器,日常工作中自然也就少不了了:特别是Android开发,github和google是逃不过的了.然而很多时候需要用到git克隆远程的代码库,众所周知的原因google.and ...

  6. 浅谈自我对git的初步认识

    本学期我们新增了一门课程,那就是软件工程,不知道为什么,感觉有种莫名的高大上.哈哈!难道是这个名称太抽象了吗?这个问题我感觉到后来肯定就明白了. 第一次博客,感觉好紧张哦,嘿嘿!老师让我们谈谈对git ...

  7. 五、在IDEA中使用GIt版本控制并将本地代码上传至Github

    一.安装git     Git工具下载:https://git-scm.com/downloads 从官网下载.安装很简单,基本都是下一步. 安装完的第一件事情就是创建一个Git用户: git con ...

  8. git学习01- 下载安装&初始化库&提交

    1.windows下安装git,git官网下载安装包安装 2.本地创建一个目录,在目录下创建1个文本 readme.txt 3.cmd进入到该目录,执行git init,初始化git仓库 4.添加文件 ...

  9. Git安装及创建版本库

    一.在Windows上安装Git 1.虽然用于开发的系统最好是用Mac或者Linux,但绝大多数新人都是用Windows进行开发.Windows系统上也有提供了Git(Windows版),下载地址:h ...

随机推荐

  1. monoTouch for android visual studio c#开发

    本人  c# 程序员,第一次配置环境 按照此流程安装   http://www.wuleba.com/18892.html 本次下载的 8 个安装程序,我是安装以上顺序安装的,分别标志为1至8,暂时不 ...

  2. [C#]设置或取消开机启动(注册表形式)

    原文:[C#]设置或取消开机启动(注册表形式) 使用代码: 代码效果:

  3. MVC生成CheckBoxList并对其验证

    原文:MVC生成CheckBoxList并对其验证 通过扩展方法,可以让CheckBox水平排列,生成CheckBoxList,正如"MVC扩展生成CheckBoxList并水平排列&quo ...

  4. php错误及异常捕捉

    原文:php错误及异常捕捉 在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的. 所以引用以下几中函数. a)   set_error_handler 一般用于捕捉  E_NOTI ...

  5. sql点滴42—mysql中的时间转换

    原文:sql点滴42-mysql中的时间转换 UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时 ...

  6. 快速构建Windows 8风格应用1-开发工具安装及模拟器使用

    原文:快速构建Windows 8风格应用1-开发工具安装及模拟器使用 本篇博文主要介绍的是开发Windows 8风格应用中常用的两个开发工具:Visual Studio 2012和Expression ...

  7. 《Shell十三问》笔记(上)

    <shell十三问>是网中人前辈首发在CU论坛上对SHELL的一些整理,非常值得一读 注:笔记的标号非问题标号,而是知识点的标号.本篇笔记记录的是1-10问的知识点 (1)IFS:Shel ...

  8. 解决wps for linux 中文输入法光标不跟随的问题

    需要安装qt4-qtconfig和ibus-qt4,安装ibus-qt4之后才能在qt4-qtconfig“界面”选项卡默认输入法选项中看到ibus,选定它,然后设置XIM输入风格为光标跟随风格,保存 ...

  9. placeholder 属性的支持

    placeholder 是HTML5的. 在IE6-8中不能使用.可以使用  JQ 来设置. 给input一个value, JQ判断得到焦点时  value="": 移开焦点时,若 ...

  10. SSIS中Sql Task 获取系统变量

    原文:SSIS中Sql Task 获取系统变量 执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记.例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @var ...