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. Struts2的工作原理及工作流程

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...

  2. 74LS183 加法器 【数字电路】

    74LS183 搭的一个还有点意思的加法电路,串行进位的 2+6 == 8 大家都懂的哈哈

  3. JSLint是一个JavaScript的代码质量工具

    JSLint是一个JavaScript的代码质量工具 可能都或多或少的知道JSLint是一个JavaScript的代码质量工具,一个JavaScript语法检查器和校验器,它能分析JavaScript ...

  4. Javascript实战开发:教你使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  5. 专业MySQL数据库管理专家SQL Manager for MySQL发布5.4版本

    SQL Manager for MySQL是一款针对MySQL数据库服务器系统的管理工具.深受数据库管理员的喜欢,其富有艺术感的图形用户界面,即使新手也可以不会为如何使用而感到困扰.近日EMSSoft ...

  6. 异步陷阱之IO

    异步陷阱之IO篇 很多教程和资料都强调流畅的用户体验需要异步来辅助,核心思想就是保证用户前端的交互永远有最高的优先级,让一切费时的逻辑通通放到后台,等到诸事完备,通知一下前端给个提示或者继续下一步.随 ...

  7. Java 感知Mysql存储过程变量数量

    在项目中,可能会遇到sybase 移植到 mysql的情况,因为sybase 支持存储过程的可变参数,而mysql不能支持,所以,在调用mysql的时候,需要感知存储过程到底有几个参数,来合理的配置参 ...

  8. Jumony快速抓取网页

    Jumony快速抓取网页 --- Jumony使用笔记--icode   作者:郝喜路   个人主页:http://www.cnicode.com      博客地址:http://haoxilu.c ...

  9. awk学习点滴

    1,常量 ARGC:命令行参数个数 包括awk本身命令,但awk的自带option不算在内. ARGV:命令行参数数组 ARGV[0]是awk本身,其他依次提取就好. $ awk -F ' ' 'BE ...

  10. JAVA学习:内部类

    一.内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有.格式为外部类名.this 2.外部类要访问内部类,必须建立内部类对象. 代码: class Outer { private in ...