1.创建代码仓库

Step 1:先配置下我们的身份吧,这样在提交代码的时候Git就可以知道是谁提交的,命令如下:

git config --global user.name "coder-pig"
git config --global user.email "779878443@qq.com"

配置完成后,我们可以再次输入,不包括名称,可以看到我们已经配置成功了

Step 2:找个地方创建我们的代码仓库,然后我创建了一个新的项目:TestForGit,来到工程的目录下,右键,打开我们的Git Bash,键入下述指令完成代码仓库的建立!另外这个代码仓库其实是用来保存版本管理所需的一些信息,我们本地提交的代码都会提交到代码仓库中,于是乎我们可以选择还原到某个版本,当然,如果需要的话,我们还可以将保存在代码仓库中的代码推送那个到远程仓库中!比如GitHub!

git init

一个简单的代码,代码仓库就创建完毕了!继续输入:ls - al可以看到下目录下有个.git的文件夹就是他了!

也可以打开工程目录,同样看也看到.git文件夹;如果我们想删除代码仓库只需把这个文件夹删掉即可!


2.提交本地代码

创建完代码仓库,接下来说下如何提交代码,我们是先用add命令把要提交的内容都加进来,然后commit才是真的去执行提交操作!命令例子如下,你可以一次次慢慢添加,当然也可以全部提交,直接git add .即可完成! 我们现在工程目录下创建一个readme.txt的文件试试,随便写点东西,然后依次输入下述指令:

 git add readme.txt
git commit -m "Wrote a readme file"

输入命令试试:

当然如果你可以add多个文件后再一次性commit,不过如果我们改动的文件很多的话,我们可以git add .一次添加全部,但有一些是几百年都不变一次的又或者自动生成的,比如lib,gen,bin文件夹等等,我们可以在代码仓库的根目录下创建一个名为.gitignore的文件,然后编辑里面的内容,把不需提交的文件忽略掉!

接着输入要提交时忽略的文件内容即可!

那么我们git add .的时候,这里的文件就不会add,另外可能你会觉的commit后面写-m "xxx"很麻烦,想偷懒,但还是写上吧!输入的是本次提交的一些声明,比如自己修改了些什么!就好像写代码的时候,你偷懒不写注释,过几天你连自己写的什么鬼都不知道...


3.查看修改内容

好吧,前面我们用git add提交了整个项目到本地仓库,接下来我们改点东西,然后使用git status可以查看 修改的部分,比如,我们删掉MainActivity.java里的菜单的代码以及多余的菜单相关的包!

他就会提示我们哪些文件发生了改变,但是还没有提交,如果我们想看下具体更改了什么,我们可以用到git diff命令,另外,按Q可以退回命令行输入!


4.查看提交记录

当然随着我们项目的深入,Commit的次数也会越来越多,可能你早已忘记每次提交都修改了什么内容, 没事,Git帮你记着呢,使用git log即可查看历史提交信息!键入

git log

回车:

我们取其中一小部分来分析:

commit defd8af52be5183dfceb3e5cf23f78ea47d013b0
Author: coder-pig <779878443@qq.com>
Date: Fri Jun 19 17:00:36 2015 +0800
MainActivity Delete Menu

依次是:

  • 此次提交对应的版本号
  • 提交人:姓名 邮箱
  • 提交的时间
  • 提交版本修改的内容:就是我们commit -m "xxx"里的xxx

5.撤销未提交的修改

比如我们刚提交了一个版本,然后又乱七八糟地写了一堆东西,突然发现不小心误删了一些东西,然后ctrl + s保存了,这个时候是不是欲哭无泪,不过有Git,只需一个checkout命令即可撤销更改,当然是你还没add的情况,比如我们在MainActivity里随便添加一条语句,然后ctrl + s保存代码!

然后命令行键入:git diff:

嗯,这里可以看到我们改的内容,我们可以回去把这句代码删掉,但是如果改的有上千行你怎么改, 于是乎这个时候我们可以使用

git checkout src/com/jay/example/testforgit/MainActivity.java

然后会神奇的发现,我们新写的代码没了!duang一下就没了,不信你可以自己试试

当然,如果我们已经add了的话,那么checkout是没任何作用的,我们要先取消添加才可以撤回提交,使用下述指令:

git reset HEAD src/com/jay/example/testforgit/MainActivity.java
git checkout src/com/jay/example/testforgit/MainActivity.java

6.版本回退

第五点我们教了大家撤销未提交的修改,但加入提交了,我们想回退到之前的某一个版本怎么办? 第四点中我们可以通过git log查看我们的提交记录,我们需要从这里获取一个版本号, 一般我们只需要前七位字符就够了;另外在Git中,用HEAD代表当前版本,上一个版本就是HEAD^, 再上一个版本就是HEAD^^依次类推!我们先Git Log看下版本历史先!

我们回到前一个提交的版本吧,依次键入下述指令:

 git reset --hard HEAD
git reset --hard HEAD^
git log

这时看下我们的控制台:

可以看到我们已经回退到了前一个版本了,当然你可以直接这样写:

git reset --hard ad2080c

就是这么简单!回退后,你突然后悔了,想回退回新的那个版本, 可是遗憾的是,你键入git log却发现没有了最新的那个版本号,这怎么办呢... 没事,Git中给你提供了这颗"后悔药",Git记录着你输入的每一条指令呢!键入:

git reflog

你会发现,版本号就在这里:

然后键入:

git reset --hard ad2080c

可以看到我们又回到了最新的那个版本了,就是这么溜!

在GITHUB中管理代码仓库:

了解概念后,我们来熟悉与分支相关的几个命令:

①创建分支(后者创建同时会切换分支):

git branch v1.0.3 或 git checkout -b v1.0.4

②查看版本库中所有分支:

git branch -a

③切换到某一分支:

git checkout v1.0.3

④删除某一分支:

git branch -D v1.0.4

⑤合并分支

 git merge v1.0.3

Git 常用使用技巧的更多相关文章

  1. Git常用使用技巧

    - 此随笔不是使用教材,使用教材参照git官方文档和相应博客 - 此随笔不是转载而来,涉及不少三方链接,再次表示感谢 - 此随便乃实践中碰到的问题,增加开发效率,干货满满 git 撤销某次提交的技巧: ...

  2. iOS开发——开发技巧&Git常用命令

    Git常用命令 初始化git init        加—bare实现远程仓库 配置git config user.name iCocos 配置全局git config —global user.na ...

  3. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  4. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  5. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

  6. Git常用命令(转)

    目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ...

  7. 版本控制工具——Git常用操作(下)

    本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...

  8. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  9. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

随机推荐

  1. python里面的xlrd模块

    ♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 今天就先来说一下xlrd模块: 一.安装xlrd模块 ♦ 到python官网下载 ...

  2. 2017第十三届湖南省省赛A - Seating Arrangement CSU - 1997

    Mr. Teacher老师班上一共有n个同学,编号为1到n. 在上课的时候Mr. Teacher要求同学们从左至右按1, 2, …, n的顺序坐成一排,这样每个同学的位置是固定的,谁没来上课就一目了然 ...

  3. Linux网络管理(一):网卡驱动与Linux内核

    下图简单描述了网卡驱动与Linux内核之间的联系: 关于上图的一些说明: 系统初始化: 1. 协议模块调用 dev_add_pack() 来注册协议处理函数到链表 &ptype_base: 2 ...

  4. Linux - TCP编程相关配置2

    100万并发连接服务器笔记之处理端口数量受限问题 第二个遇到的问题:端口数量受限 一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可.但是向提供代理服务器,就不得不考虑端口数量受 ...

  5. eclipse maven Errors while generating javadoc on java8

    With JDK 8, we are unable to get Javadoc unless your tool meets the standards of doclint. Some of it ...

  6. 纯手写SpringMVC到SpringBoot框架项目实战

    引言 Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 通过这种方式,springboot ...

  7. nvgre

    GRE RFC2784 工作原理 Structure of a GRE Encapsulated Packet A GRE encapsulated packet has the form: ---- ...

  8. java常用类-String类

    * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值"abc"也可以看成是一个字符串对象. * B:字符串是 ...

  9. ubuntu 容器安装ping ifconfig ip命令

    进入容器测试ifconfig  ping 没有-------->>很尴尬 apt-get install net-tools ###   ifconfig apt-get install ...

  10. eclipse启动时发生的Initializing Java Tooling错误

    eclipse在启动发生An internal error occurred during: "Initializing Java Tooling". java.lang.Null ...