一、Git的特性

Speed 速度(git是用c语言写的。一般都是提交到本地)

Simple design

Strong support for non-linear development (thousands of parallel branches)(强有力的支持非线性开发) 

Fully distributed(分布式)

Able to handle large projects like the Linux kernel efficiently (speed and data size)

二、Git的架构原理

1.快照和索引而不是增量,svn是增量

2.差点儿全部的操作都是本地的

3.Git文件的三个状态

Committed :文件安全的存储在你的本地. 

Modified :你改动了文件,但还未提交到你的仓库. 

Staged : 已经标记了一个已改动文件到下一个版本号的快照





对应流程例如以下:

(1),工作区改动文件

(2),adding 快照到stage区域

(3),commit 提交到仓库

4.文件状态生命周期

三、安装Git及使用前的准备

1.安装,直接上官网下载安装

2.安装完毕之后查看系统环境变量,设置身份

(1),了解系统环境变量

/etc/gitconfig

.gitconfig 





(2),设置身份

$ git config --global user.name "John Doe"

$ git config --global user.email johndoe@example.com





(3),设置编辑器(可选)

$ git config --global core.editor emacs





(4),设置你的比較工具(可选)

$ git config --global merge.tool vimdiff





(5),检查你的配置(可选)

$ git config --list





(6),帮助

$ git help <verb>

$ git <verb> --help

3.开发前需理解的四个区域

blessed (remote) repository 远程仓库

local repository 本地仓库

stage area 暂时区

work area 工作区

四、Git相关命令

基本命令

1.初始化

(1)init 进入工作区间目录,git init

(2)clone 从远程server调用git clone git://github.com/wsj/test.git

2.由工作区workspace添�到暂时区staged,add命令

git add *.java

git add wsj.txt

3.由暂时区staged提交到本地仓库local repository

git commit  -m "log"

4.查看提交状态

git status

5.忽略文件或目录

新建.gitignore文件,写入要忽略的文件名称就可以

6.查看三个区域文件的差别

$git diff --staged : workspace VS staged  .

$git diff --cached :staged  VS local repo

7.回滚 reset

git reset 三种模式

git reset --mixed 保留工作区源代码,暂时区和本地仓库回滚

git reset --soft  保留工作区和暂时区源代码,本地仓库回滚

git reset --hard 工作区,暂时区,本地仓库都回滚





git reset --hard HEAD^ 回滚全部内容到上一个版本号,后边可加上文件名称

git reset --hard HEAD~3回滚到上3个版本号

git reset --hard  origin/master 回滚到和远程仓库一致

8.删除移动 rm mv

删除但未提交到本地仓库,这时假设想找回文件,使用git checkout filename

共享及更新项目

1.从远程仓库中更新 fetch pull

git fetch origin 相当于是从远程获取最新版本号到本地,不会自己主动merge

git pull origin 相当于是从远程获取最新版本号并merge到本地

具体介绍,请看一下博客

http://blog.csdn.net/hudashi/article/details/7664457

2.提交到远程仓库

git push origin master

3.远程仓库 remote

列出远程仓库

git remote

git remote -v 显示远程地址





//加入�远程仓库

git remote add pb git://github.com/sundyhome/ticgit.git

git remote rename pb paul

git remote rm paul

git remote show origin

观察比較 log diff

查找tag相应的commit id

 git log --oneline --decorate

分支管理及合并

1.分支branch

git branch branchname创建分支



查看

git branch 列出分支

git show-branch 列出分支,并列出差异

git diff branch1 branch2

git whatchanged

2.切换分支checkout

3.分支合并merge

git merge "merge branch1 to master" HEAD branch1

还有一种做法

git checkout master

git pull . branch1

4.版本号tag

git tag -a ver1.0 -m "my version 1.0"





//show ver1.0 命令查看对应标签的版本号信息,并连同显示打标签时的提交对象。

git show ver1.0





//switch ver1.0

git checkout ver1.0





怎样恢复到tag1.0,看以下文章

http://blog.csdn.net/csfreebird/article/details/8022051

Git使用总结-so easy的更多相关文章

  1. Git工作流指南:Gitflow工作流 Comparing Workflows

    Comparing Workflows The array of possible workflows can make it hard to know where to begin when imp ...

  2. git workflows

    https://www.atlassian.com/git/tutorials/comparing-workflows Comparing Workflows The array of possibl ...

  3. How to get started with GIT and work with GIT Remote Repo

    https://www.ntu.edu.sg/home/ehchua/programming/howto/Git_HowTo.html#zz-7. 1.  Introduction GIT is a ...

  4. Git学习0基础篇(下)

    server上的 Git - 协议 Git能够使用四种基本的协议传输资料:本地协议(Local).HTTP 协议.SSH(Secure Shell) 协议以及 Git 协议.眼下使用最普及的是 SSH ...

  5. Git实战(三)环境搭建

    上次的博文中.我们介绍了一下关于Git作为版本号控制工具的基本原理,接下来我们来搭建一个主要的Git环境(因为我使用的是Windows系统.所以重点側重在这方面). Git安装 Git的安装很easy ...

  6. Git学习记录(一)

    本篇文章介绍Git的本地使用 Git是什么? Git是世界上最先进的分布式版本控制系统. 那么什么是版本控制系统? 我们来举个例子,假设我创建了一个项目Project.1,里面写了一个README.t ...

  7. Latex Notes

    latex Table of Contents 1. Presentation/Slides with Beamer 2. Drawing in LaTex With TikZ 3. Tracked ...

  8. release git tag easy use

    #!/usr/local/env bash FLOW_VERSION=v2.0-rc-`date +"%Y-%m-%dT%H-%M-%S"` echo "version: ...

  9. GIT命令总结,so easy

    一:GIT命令实战(码云) https://oschina.gitee.io/learn-git-branching/ 提交 git commit 创建分支 git branch <name&g ...

随机推荐

  1. HBase总结(二十)HBase经常使用shell命令具体说明

    进入hbase shell console $HBASE_HOME/bin/hbase shell 假设有kerberos认证,须要事先使用对应的keytab进行一下认证(使用kinit命令),认证成 ...

  2. 因特网的IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?

    因特网使用的IP协议是无连接的,因此其传输是不可靠的. 这样easy使人们感到因特网非常不可靠,那为什么当初不直接把它设计为可靠的? 先打一个例如.邮局寄送的平信非常像无连接的IP数据报.每封平信可能 ...

  3. 使用KnockoutJs+Bootstrap实现分页

    [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootstrap实现分页   一.引言 由于最近公司的系统需要改版,改版的新系统我打算使用KnockoutJs来制作Web前端 ...

  4. poj 1991 Turning in Homework dp

    这个可以证明必须从两边的任务开始交起,因为中间交的任务可以后面经过的时候再交,所以就变成了一个n*n的dp. #include <iostream> #include <cstdio ...

  5. [LeetCode]Pascal&#39;s Triangle II

    题目:给定一个行索引index,返回帕斯卡三角形第index层的三角形 算法:生成index层帕斯卡三角形,并返回第index层三角形 public class Solution { public L ...

  6. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2

    本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MA ...

  7. (转)在 Visual Studio 2010 中创建 ASP.Net Web Service

    很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进W ...

  8. HUST 1017(DLX)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65998#problem/A 题意:求01矩阵的精确覆盖. DLX学习资料:ht ...

  9. Leetcode 细节实现 Set Matrix Zeroes

    Set Matrix Zeroes Total Accepted: 18139 Total Submissions: 58671My Submissions Given a m x n matrix, ...

  10. VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management

    VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management 实验失败告终,启动VMware View Persona Management服务报10 ...