Git基本命令

git diff:查看工作树,暂存区,最新提交之间的差别

举例:

在README.MD中增加一行

## This is the subtitle

执行git diff 命令,查看当前工作树暂存区的区别。

$ git diff

diff --git a/README.md b/README.md

index fec5601..203cf31 

--- a/README.md

+++ b/README.md

@@ - +, @@

# Hello

+## This is the subtitle

说明:"+"表示新添加的行,"-"表示删除的行,由结果可知:增加了:## This is the subtitle

执行

git add README.md 

将README.md文件加入暂存区

执行git diff HEAD 可以查看暂存区和最新提交的差别。

$ git diff HEAD

diff --git a/README.md b/README.md

index fec5601..203cf31 

--- a/README.md

+++ b/README.md

@@ - +, @@

# Hello

+## This is the subtitle

执行

git commit –m "this is your description"

将文件提交。

git branch:显示分支列表,并标识当前所在分支

$ git branch

* master

git checkout –b:创建并且切换分支

$ git checkout -b branch-a

M README.md

Switched to a new branch 'branch-a'

此时再运行git branch,显示当前分支为branch-a

$ git branch

* branch-a

Master

在branch-a这个分支操作并提交代码,代码回提交到branch-a这个分支而不会提交到master分支。

举例:

在branch –a这个分支中修改README.md文件,增加一行:## this is branch-a 并提交,

$ git diff

diff --git a/README.md b/README.md

index fec5601..803aa74 

--- a/README.md

+++ b/README.md

@@ - +, @@

# Hello

+## This is the subtitle

+

+## this is branch-a

切换至master分支

$ git checkout master

Switched to branch 'master'

Your branch is up-to-date with 'origin/master'.

查看master中的README.md文件,无增加行。

$ cat README.md

# Hello

git merge:合并分支

首先我们切换回master分支,

$ git checkout master

Switched to branch 'master'

Your branch is up-to-date with 'origin/master'.

然后,合并master和branch-a这个分支

执行:

git merge --no-ff branch-a

系统提示合并之前需要输入一些描述信息,按ESC并输入 :wq退出即可,

$ git merge --no-ff branch-a

Merge made by the 'recursive' strategy.

README.md |  +++

 file changed,  insertions(+)

git log:查看历史提交记录

commit 182053ec7e8683e381996c683a7b04f43be57bd3

Merge: b1444e3 2806d72

Author: zenghui <zengh927@.com>

Date: Tue Dec  ::  +

Merge branch 'branch-a'

commit 2806d720ed728ca55cc32c3091879eae8c8b5b5e

Author: zenghui <zengh927@.com>

Date: Tue Dec  ::  +

add branch-a

commit b1444e36a2df109ce5414f5f00fd1ea97f3c1492

Author: zenghui <zengh927@.com>

Date: Mon Dec  ::  +

Add T.java File

commit 0f2c6b68e711d74e35490bec6e6d8ab01e6a29d9

Author: GreyZeng <@qq.com>

Date: Mon Dec  ::  +

git reset --hard + 哈希值:回溯到指定版本

执行:

$ git reset --hard b1444e36a2df109ce5414f5f00fd1ea97f3c1492

HEAD is now at b1444e3 Add T.java File

回溯到branch-a分支创建之前。

处理冲突

举例:

在master的README.md中增加一行:## FROM MASTER并提交

合并master和branch-a分支

$ git merge --no-ff branch-a

Auto-merging README.md

CONFLICT (content): Merge conflict in README.md

Automatic merge failed; fix conflicts and then commit the result.

显示冲突

用编辑器打开README.md文件发现:

# Hello

<<<<<<< HEAD

## FROM MASTER

=======

## This is the subtitle

## this is branch-a

>>>>>>> branch-a

此时,只要手动修改一下文件:

# Hello

## FROM MASTER

## This is the subtitle

## this is branch-a

再次执行git add 和 git commit 即可

git push:推送至远程仓库

推送master到远程仓库:

$ git push -u origin master

Counting objects: , done.

Delta compression using up to  threads.

Compressing objects: % (/), done.

Writing objects: % (/),  bytes |  bytes/s, done.

Total  (delta ), reused  (delta )

To https://github.com/GreyZeng/Hello.git

b1444e3..6840c0a master -> master

Branch master set up to track remote branch master from origin.

也可以推送某个分支到远程仓库

比如:推送branch-a到远程仓库,需要执行以下命令:

$ git checkout branch-a

Switched to branch 'branch-a'

$ git push -u origin branch-a

Total  (delta ), reused  (delta )

To https://github.com/GreyZeng/Hello.git

* [new branch] branch-a -> branch-a

Branch branch-a set up to track remote branch branch-a from origin.

git clone:获取远程仓库

首先我们切换到其他目录下:

执行git clone https://github.com/GreyZeng/Hello.git

$ git clone https://github.com/GreyZeng/Hello.git

Cloning into 'Hello'...

remote: Counting objects: , done.

remote: Compressing objects: % (/), done.

remote: Total  (delta ), reused  (delta ), pack-reused 

Unpacking objects: % (/), done.

Checking connectivity... done.

从而获取到远程仓库

同时,我们可以从远程仓库获取之前推送的branch-a这个分支

$ git checkout -b branch-a origin/branch-a

Branch branch-a set up to track remote branch branch-a from origin.

Switched to a new branch 'branch-a'

git pull:获取最新的远程仓库:

假如有人在master分支上push了新的代码,本地需要同步最新代码

$ git pull origin master

remote: Counting objects: , done.

remote: Compressing objects: % (/), done.

remote: Total  (delta ), reused  (delta ), pack-reused 

Unpacking objects: % (/), done.

From https://github.com/GreyZeng/Hello

* branch master -> FETCH_HEAD

6b04921..c2c9aa0 master -> origin/master

Updating 6b04921..c2c9aa0

Fast-forward

README.md |  +-

 file changed,  insertion(+),  deletion(-)

Github教程(1)的更多相关文章

  1. 上传本地代码及更新代码到GitHub教程

    上传本地代码及更新代码到GitHub教程 上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo " ...

  2. 一篇文章了解Github和Git教程-AndroidStudio上传Github教程

    前言 为了方便保存自己的代码,下班后可以回家继续进行,自己的码农工作,介绍一下Github. 什么是Github呢? 作为一个编程人员,我觉得得了解一下Github吧! 当然,如果你放弃了码农或者技术 ...

  3. git 入门教程之github 教程

    github 教程 github 是一个基于 git 的代码托管平台,是平时工作学习的好帮手,学会如何用好 github 网站能够帮助我们更好分享代码或者与其他开发人员合作. 注册 github 账号 ...

  4. 史上最简单的 GitHub 教程

    史上最简单的 GitHub 教程 温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行Star和Fork操作! 1 简介 GitHub 是一个面 ...

  5. GitHub教程(二) 删除已有仓库

    通过GitHub教程(一)的阅读,我相信您对GitHub体系框架已经有了模模糊糊的了解.本节教程将继续介绍GitHub的操作---删除仓库. 作为GitHub的入门使用者,我们可能会建一些简单的仓库来 ...

  6. GitHub教程(三) 本地仓库托管到GitHub

    本文开头先特别声明一下:由于GitHub教程属于Git系列教程的GitHub子篇章,因此GitHub教程中将不再详细介绍Git操作命令及其用法,我会根据实际需要穿插着回顾Git操作命令.如果读者需要学 ...

  7. GitHub教程--上传项目四步法 GitBash命令行下使用方法

    之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...

  8. 【Github教程】史上最全github用法:github入门到精通

    原文 http://www.eoeandroid.com/thread-274556-1-1.html [初识Github] 首先让我们大家一起喊一句"Hello Github". ...

  9. get最简单直接粗爆git与github教程

    Git是分布式版本控制系统(可以理解为文件管理拓展工具) github一个在线文件托管系统(可以理解为一个在线云盘) 准备工作,在git官网下载git软件件,安装git软件,以windows.为例,下 ...

  10. 【Github教程】:github入门到精通

    [初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. 原文 http://www.eoeandroid.com/thread-27455 ...

随机推荐

  1. 黄页js-sdk开发总结分享

    2014年,为了方便第三方开发者能够调用本地的一些功能,我们提供了一套js-sdk.通过调用我们的接口,开发者可以定制UI,获取当前的手机状态,调用支付,黄页扫一扫功能,为用户提供更加优质的体验.下面 ...

  2. CSS3学习笔记--transform中的Matrix(矩阵)

    transform: matrix(a,b,c,d,e,f) ,如下图矩阵所示,任意点(x,y,1)经过matrix变化为(ax+cy+e,bx+dy+f,1),由此可以知道,matrix参数与tra ...

  3. SQLSERVER建立MYSQL连接服务器

    1. 在SQL SERVER端安装MYSQL的ODBC驱动 2. 在ODBC数据源添加MYSQL(控制面板\所有控制面板项\管理工具) 在用户DSN 和系统DSN添加配置驱动程序 注:字符集一定要和M ...

  4. android多国语言文件夹文件汇总

    android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-e ...

  5. SAP ECC CO 配置

    SAP ECC 6.0 Configuration Document Controlling (CO) Table of Content TOC \o \h \z 1. Enterprise Stru ...

  6. MxNet Windows下安装

    项目链接:https://github.com/dmlc/mxnet 因为要做一些开发工作,prebuilt的lib不能满足需求.由于工作环境要求是windows,所以可以利用cmake工具来构建. ...

  7. What's New in iOS9 iOS9功能改进

    What's New in iOS9 This article summarizes the key developer-related features introduced in iOS 9, w ...

  8. Android 模拟器 获得 root权限

    启动一个模拟器,开始-运行-输入cmd,打开dos,依次输入 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system ...

  9. Form personization(Form 个性化)报无权限

    总部的同事利用form personization对工单的一些Form做了个性化,发现可能设的有问题,造成用户无法关工单.想要看一下她是怎么设的,可报没权限.经过研究发现,把个人Profile 的 U ...

  10. Go目录

    1. Go语言获取项目当前路径 2. Go语言TCP/UDP Socket编程 3. Go语言实现HashSet