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计时器 + asp 计时器

    JS: <script type="text/javascript"> ; function starts() { ) { alert('已经开启了实时监控!') re ...

  2. 更改chrome底色为护目色

    找到chrome目录:C:\Documents and Settings\用户名\Local Settings\Application Data\Google\Chrome\User Data\Def ...

  3. 北京地铁月度消费总金额计算(Python版)

    最近业余时间在学习Python,这是那天坐地铁时突发奇想,想看看我这一个月的地铁费共多少钱,所以简单的构思了下思路,就直接开写了,没想到用Python来实现还挺简单的. 设计思路: 每次乘车正常消费7 ...

  4. WPF 转义字符

    下面是五个在XML文档中预定义好的实体: < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 " " 双引号 实体 ...

  5. 使用PuTTY时的文件上传下载方法

    如果你是个PuTTY重度用户,在使用ssh连上一个远端机器工作了好一阵子后,发现自己需要对 当前会话 上传/下载文件,要怎样才能简单快捷呢? 最简单的方式 最简单的方法: 安装WinSCP或者File ...

  6. struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组

    在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...

  7. CentOS安装keepalived

    Haproxy.Keepalived双主高可用负载均衡  1.安装keepalived yum install keepalived -y

  8. Android 手机技巧

    1. 使用其它手机做热点上网,最怕的就是有些应用会在连接 WIFI 时偷偷做一些事情,比如备份/同步数据等等.在这流量就是金钱的时代,不能白白让钱流走,这时你需要进入“设置 -> 浏览使用情况 ...

  9. Golang pprof heap profile is empty

    Q: When you use `go tool pprof` get heap data, profile is empty. A: The default sampling rate is 1 s ...

  10. 部署tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中

    在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail  -f  catalina.out 来跟踪Tomcat 和相关应用运行的情况. ...