Git书籍有《版本控制之道git》,但是很一般。强烈推荐《Git Pro》中文版!

很多开源软件的教程也是免费开源的在线阅读的。

《Git Pro》中文版在线阅读http://iissnan.com/progit/     (同前需翻墙浏览)http://git-scm.com/book/zh

Pro Git书籍源码http://www.worldhello.net/gotgithub/

git是一个软件工具,在实践中才能熟悉之,所以学习是长期坚持运用的过程。

笔记:

开始Git:

git config --global --user.name "pythonwood"
git config --global --user.email "582223837@qq.com
#git config --global --list #list all mk HelloWorld
cd HelloWorld
git init #make .git
git add .
git status #which is changed
git commit -m "add commit: add something" \
-m "This allows for a more semantic document."
#git log -1 --pretty=oneline #显示最后一次 分支:
merge后就可以删除分支,git branch -d # git branch --no-merge 显示未合并分支
rebase有趣示例:
多分支时rebase: git rebase --onto master branch20131029 branch2 # 位于branch20131029上时,跳过branch2的父分支branch20131029,将branch2的特有变化在master上演化一次。
跟踪远程分支:
git checkout -b hotfix origin/hotfix # --track
删除远程分支:
git checkout origin :hotfix rebase重难点:如果把衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些尚未公开的提交对象,就没问题。如果衍合那些已经公开的提交对象,并且已经有人基于这些提交对象开展了后续开发工作的话,就会出现叫人沮丧的麻烦。 知识点:
git add 与 git reset相对
git commit 与 git checkout相对
git merge 与 git rebase相似
git branch --merge 与 git branch --merge 相对 (merged ok too)
分支合并时rebase后再merge会快进,即前进式merge。
git checkout --track = git checkout -b

git check -b <name> = git branch <name> + git checkout <name>
git pull = git fetch + git merge
git commit -a -m = git add + git commit -m 常用git命令:
git commit --amend
git status
git diff git 标签:
1、tag <name> [SHA]
2、tag -a <name> [SHA]
3、tag -s <name> (高级) git push origin --tags (必须显式使用参数) **与服务器交互:
git config --global push.default simple # 使用默认模式,不用每次push都提示
git clone git@github.com:/pythonwood/HelloWorld.git # 自动分支成远程引用origin/master和本地master。如果有写权限,git remote -v 可见到push权限。
#git remote 引用一个远程仓库(地址)别名:origin

必须先pull再push,方式有git,https,ssl等等**

git学习利器:《Git Pro》中文版的更多相关文章

  1. git学习——<五>git分支

    git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...

  2. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  3. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

  4. git 学习(1) ----- git 本地仓库操作

    最近在项目中使用git了,在实战中才知道,以前学习的git 知识只是皮毛,需要重新系统的学一下,读了一本叫  Learn Git in a Month of Lunches 的书籍,这本书通俗易懂,使 ...

  5. Git 学习之git 分支(三)

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  6. Git 学习之Git 基础(二)

    Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...

  7. Git 学习之git 起步(一)

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  8. Git 学习之 Git Basics

    最近在用git,但git学习曲线实在是有点高. 好在找到一个文档 https://www.atlassian.com/git/tutorial/,以下就是学习笔记吧! git init git ini ...

  9. git 学习(4) ----- git rebase

    使用git rebase 的前提是多人协作下的分支开发,如果是单人开发,那就没有必要使用它了,这是由git rebase 的作用所决定的,git rebase 有两大作用:一个是与主分支保持同步,一个 ...

随机推荐

  1. DirectDraw

    一.DirectDraw接口 DirectDraw接口图如下: 1.IUnknown:所有COM对象都必须从这个基本接口派生 2.IDirectDraw:这是开始使用DirectDraw时必须创建的主 ...

  2. JavaScript DOM-Ready 机制

    IE9开始和其他现代浏览器可以通过绑定DOMContentLoaded事件:IE9之前的的浏览器需要绑定onreadystatechange事件并等待readyState为"complete ...

  3. sshd_config 配置文件

    Ssh-server 服务端 sshd_concfig Port Protocol HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_hos ...

  4. js冲突怎么解决

    a.最容易出现的就是js的命名冲突①.变量名冲突变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScript错误,甚至死循环.②.方 ...

  5. android布局之线性布局

    LinearLayout 线性布局有两种,分别是水平线性布局和垂直线性布局,LinearLayout属性中android:orientation为设置线性布局当其="vertical&quo ...

  6. java继承分析

    把java学完之后有開始了一遍突然发现对于继承还是不太理解所以就做了一个測试来分析一下 <span style="font-size:18px;">class A{ p ...

  7. linux ----Inode的结构图

    http://www.ruanyifeng.com/blog/2011/12/inode.html 先看看Inode的结构图             再来了解一下文件系统如何存取文件的 1.根据文件名 ...

  8. QT QObject::connect函数的学习

      从Qobject(QObject.h)源码中可以看到QObject::connect的定义是这样的: static bool connect(const QObject *sender, cons ...

  9. 通过MultipleOutputs写到多个文件

    MultipleOutputs 类可以将数据写到多个文件,这些文件的名称源于输出的键和值或者任意字符串.这允许每个 reducer(或者只有 map 作业的 mapper)创建多个文件. 采用name ...

  10. IOS-CGAffineTransformMake 矩阵变换 的运算原理

    1.矩阵的基本知识: struct CGAffineTransform {   CGFloat a, b, c, d;   CGFloat tx, ty; }; CGAffineTransform C ...