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. CoreData多线程安全

    CoreData中的NSManagedObjectContext在多线程中不安全,如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext, ,每个 ...

  2. 【卡西欧Fx5800-p程序】01 坐标转换程序-带注释

    1.程序说明: DDSG  (大地坐标转施工坐标) SGDD  (施工坐标转大地坐标) ↙      (回车命令"EXE") K       (施工坐标转换原点在线性上的桩号,如果 ...

  3. golang全文搜索--使用sphinx

    不多废话,测试环境 `ubuntu 13.10` ## 安装 sudo apt-get install sphinxsearch ## 配置 nano /etc/sphinxsearch/sphinx ...

  4. ecshop利用.htaccess实现301重定向的方法

    实现方法如下(空间必须支持对目录中的.htaccess文件解析) 打开 .htaccess 找到 RewriteEngine on 它的下方添加 RewriteCond %{HTTP_HOST} ^需 ...

  5. C#集合 -- Equality和Order插件

    在前面的文章C#相等性比较和C#排序比较中,我已经叙述了类型相等,类型哈希,和类型比较的.NET标准协议.实现了这些协议的类型在一个字典或者列表中也可以正常工作.但是需要注意的是: 只有当类型的Equ ...

  6. GitHub上排名前100的iOS开源库介绍(来自github)

    主要对当前 GitHub 排名前 100 的项目做一个简单的简介,方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. 若有任何疑问可通过微博@李锦发联系我 项目名称 项目信息 ...

  7. windows内核结构

  8. 3种归并操作js代码

    /**良哥的*/ function merge(a, b) { var aLen = a.length, bLen = b.length, maxLen = Math.max(aLen, bLen), ...

  9. 完成端口CreateIoCompletionPort编写高性能的网络模型程序

    1.同步网络模型:就是服务端同步阻塞等待客户端的请求,然后继续操作后续处理,缺点是性能低. 2.同步通讯+多线程模型:服务端为每个客户端分配线程,这个线程就负责这个客户端,同步通讯,同步处理这个客户端 ...

  10. sencha cmd 更新日志

    http://cdn.sencha.com/cmd/6.2.1.29/release-notes.html