序,学习使用Git是一项新技能,你将了解到Git与SubVersion的区别。

一、基本操作

git init

初始化仓库,请实际建立一个目录并初始化仓库,.git目录里存储着管理当前目录内容所需的仓库数据。

git status

查看仓库的状态。

git add

让文件成为Git仓库的管理对象。将文件加入暂存区(stage或者index)中,暂存区是提交之前的一个临时区域。

git commit

将暂存区中的文件实际保存到仓库的历史记录中。

git commit -m "comments"

不加-m,只输入git commit可以记录更详细的的描述信息。

格式:

第一行:用一行文字简述提交的更改内容

第二行:空行

第三行: 记录更改的原因和详细内容

好处:可以通过确认日志的命令或工具看到这些记录。

git log

    查看当前分支当前状态为终点的历史日志。

git log --pretty=short 只显示提交信息的第一行

git log filename/dirtory 只显示指定目录、文件的日志

git log -p

git diff

查看工作树和最新提交的差别

git diff HEAD

二、分支的操作

git branch

将分支名列表显示,左侧标有“*”表示当前所在的分支。

git checkout -b "branch_name"

以当前的分支为基础创建新的分支。

git branch feature-A #创建feature-A分支

git  checkout feature-A#将当前分支切换为feature-A

git checkout - #切换回上一个分支

git merge 合并分支

首先切换到master分支, $git checkout master

然后合并特性分支feature-A, $git merge --no-ff feature-A

合并时也许会出现冲突,解决冲突的办法就是手动去除标记,并重新执行git add 和 git commit操作

git log --graph

图形化形式显示提交日志,包括分支合并也能清楚看到

三、更改提交的操作

git reset --hard "hashvalue"

让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用git reset --hard 目标时间点的哈希值。

git reflog

查看当前仓库执行过的操作日志,最前面的就是可以用于回溯到特定状态的哈希值。

git commit --amend

修改上一条提交信息,可以执行git commit --amend命令,修改上次提交信息,然后保存退出。

git release -i HEAD~2

更改历史提交信息,利用git release命令,可以选定当前分支中包含HEAD在内的2个最新历史记录,并在编辑器中修改,后保存。

四、推送至远程仓库

git remote add origin git@github.com:yaochuancun/helloworld.git

添加远程仓库,将远程仓库与本地仓库建立联系。执行命令后GIT会自动将远程仓库的名称设置为origin(表示符)

git push

将当前分支下本地仓库中的内容推送给远程仓库。

例子:git push -u origin master 当前在本地master分支将内容推送到远程仓库的master分支,-u 参数可以在推送的同时,将origin 的master分支与当前分支建立联系,以后运行git pull时会直接从远程仓库的分支获取内容。

例子:git push -u origin feature-d,可以推送到远程仓库中除master以外的分支。

五、从远程仓库获取

git branch -a

添加-a参数可以同时显示本地仓库和远程仓库的分支信息。

git clone ssh_address

例如:$ git clone git@github.com:yaochuancun/helloworld.git,执行git clone后默认会处于master分支下。本地master分支与远程仓库的master分支在内容上是完全相同的。

git checkout -b feature-d origin/feature-d

获取远程的feature-d分支,并且在本地建立feature-d分支,本地分支feature-d与远程分支feature-d的内容完全相同。

本地分支feature-d修改后,可以推送到远程仓库的feature-d分支,git push就可以。

git pull

从远程仓库对应分支获取最新代码

六、Git学习资料

Pro Git

LearnGitBranching

https://pcottle.github.io/learnGitBranching/

tryGit

http://try.github.io/

2015年12月02日 GitHub入门学习(四)Git操作的更多相关文章

  1. 2015年12月01日 GitHub入门学习(三)GitHub创建仓库

    序:创建自己的GITHub账号,并创建自己第一个仓库,尝试通过msysgit客户端,往仓库提交文件. 一.创建GitHub账户 链接地址:https://github.com/join,很简单,自己创 ...

  2. 2015年12月01日 GitHub入门学习(二)手把手教你Git安装

    序:Mac与Linux中,Mac都预装了Git,各版本的Linux也都提供了Git的软件包.下面手把手教你Windows下的安装. 一.Git Windows GUI 下载地址 msysgit htt ...

  3. 2015年12月01日 GitHub入门学习(一)GitHub简介

    序:Github理念是Social Coding(社会化编程).octocat是它的吉祥物. 一.Github与Git的区别与联系 区别:GIT是仓库,Github是提供一种将代码提交到Git仓库的服 ...

  4. 2015年12月03日 GitHub入门学习(五)Markdown语法简介

    Markdown一种标记语言,语法简洁,不像Word或Pages有大量排版.字体设置.常用的标记符号不超过十个.被大量写作爱好者.撰稿人.作家所青睐. 一.Markdown的优点 专注你的文字内容而不 ...

  5. 【C++】命令行Hangman #2015年12月15日 00:20:27

    增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能.少量修改.# 2015年12月15日 00:20:22 https://github.com/shalliestera/ha ...

  6. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  7. 2015年12月28日 Java基础系列(六)流

    2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流

  8. 2015年12月13日 spring初级知识讲解(四)面向切面的Spring

    2015年12月13日 具体内容待补充...

  9. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

随机推荐

  1. SVN中(trunk tags branches)的使用理解

    trunk--主干(永远都是最新的,每发布一个版本会在tags和branches上进行分支) tags-标签(只读,用于存放发布后的文件冻结,以及对应发布后版本的源文件:可以是来自主干或者分支的发布: ...

  2. hdu 5035 概率题

    直接推公式的题目了.... Refer:http://blog.csdn.net/u012139398/article/details/39458623 https://www.zybuluo.com ...

  3. git实习笔记

    一.查找文件目录 二.添加上传文件 三.提交文件,描述信息 四.登录

  4. mongoDB在centos7上的安装

    1,下载安装包 下载MongoDB的安装文件 地址:https://www.mongodb.org/downloads#production 选择Linux 64-bit legacy 版本,下载到目 ...

  5. 二项分布和Beta分布

    原文为: 二项分布和Beta分布 二项分布和Beta分布 In [15]: %pylab inline import pylab as pl import numpy as np from scipy ...

  6. hdu 2010 - 水仙花数

    题意: 数学上有个水仙花数,他是这样定义的:"水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3.现在要求输出所有在m和n范围内的水仙花 ...

  7. linux下安装zookeeper(单机版)

    Zookeeper 分布式服务框架是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等.本文主要从使用者角度来介绍一下Zookeeper ...

  8. 超强语感训练文章(Provided by Rocky teacher Prince)

    Content: Class1 My name is Prince Class2 Welcome to our hotel Class3 We’re not afraid of problems Cl ...

  9. 深入揭秘HTTPS安全问题&连接建立全过程

    作者:[已重置]链接:https://zhuanlan.zhihu.com/p/22142170来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作为开发者必备的网络安全 ...

  10. javascript之简单的选择排序法

    基本思想: 比对数组中元素,相等者输出元素在数组的下标,否则就输出没找到! 代码如下: function Orderseach(array,findVal){ var temp = false; // ...