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. Spring MVC3返回JSON数据中文乱码问题解决(转)

    Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jack ...

  2. [Aaronyang] 写给自己的WPF4.5 笔记24 [与winform交互-flash-DEMO-收尾篇1/6]

      =====潇洒的版权线======www.ayjs.net===== Aaronyang ===== AY ====== 安徽 六安 杨洋 ======   未经允许不许转载 ====== 1.新 ...

  3. 项“XXXXX.sln”已在选择的位置受源代码管理

    项“XXXXX.sln”已在选择的位置受源代码管理.如果尝试重新绑定已在 Microsoft Visual Studio 外部添加到源代码管理的项目,应使用“更改源代码管理”命令.如果是第一次添加此项 ...

  4. Hibernate一些防止SQL注入的方式

    Hibernate在操作数据库的时候,有以下几种方法来防止SQL注入,大家可以一起学习一下. 1.对参数名称进行绑定: Query query=session.createQuery(hql); qu ...

  5. Unity中Mesh分解与边缘高亮加上深度检测

    一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMe ...

  6. Entityframework修改某个字段

    public void ChangePassword(int userId, string password) { var user = new User() { Id = userId, Passw ...

  7. javap生成的字节码

    https://www.zhihu.com/question/49470442/answer/135812845http://blog.csdn.net/tzs_1041218129

  8. IIS7/IIS7.5 二级域名伪静态设置方法

    转载地址:http://www.admin5.com/article/20120107/402582.shtml

  9. 译:在ASP.NET中如何对cookies进行加密和解密

    译文地址:http://www.codeproject.com/Tips/872826/Encrypt-Decrypt-Cookies-in-ASP-NET 源代码:http://files.cnbl ...

  10. Rails4 中 因为secret key 引起在production环境下无法运行

    错误信息 Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` ...