本人是参考廖雪峰的git学习的。他写的非常详细,我在这里就是把我学习中的总结以及碰到的坑写出来。

/* 初始化git仓库:git init */

/* 添加文件到git仓库 */

分两步:

  第一步:追踪文件:git add <file> 或者 git add .  ,注意多次使用,添加多个文件。

  第二步:提交记录:git commit -m "提交记录",完成。

/* 查看工作区的状态:git status */

  如果git status告诉你有文件被修改过,用git diff可以查看修改的内容。

/* 版本回退 */

git reset --hard commit_id可以让我们在版本的历史之间穿梭。

回退到之前版本,用git log查看提交历史。

从历史版本回退到未来版本,用git reflog来查看命令历史。

/* 撤销修改 */

如果不小心改乱了某个文件的内容,想直接丢弃工作区的修改后,用git checkout --file.

如果不但改乱了 工作区某个文件的内容,还添加到了暂存区,想丢弃修改。

分两步:

  第一步:git reset head file,

  第二步:git checkout --file.

/* 删除文件:git rm(尽量别用) */

/* 构建远程仓库 */

1.创建SSH Key(如果用户目录下没有.ssh目录,或者有了.ssh目录但是没有id_rsa和id_rsa.pub,其中id_rsa是私钥,is_rsa是公钥(这个可以随便告诉别人))
  ssh -keygen -t rsa  -C “yo uremail@example.com”
 
  /* 保存密码 */
  eval “$(ssh-agent -s)”
  ssh-add ~/.ssh/id_rsa
 
  /* 验证key */
  ssh -T git@github.com
2.登录git.oschina.com 打开ssh公钥页面,然后在key广本框里粘贴id_rsa.pub的内容
 
/* 关联远程库 */
  第一步:在本地的仓库下运行命令
  git remote add origin https://git.oschina.net/wuhongxing/gcd.git
  第二步:把所有的本地库的内容推到远程库上
  git push -u origin master(第一次)  之后每次可以git push origin master
/* 从远程库克隆 */
  要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
  Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
  git clone https://git.oschina.net/wuhongxing/gcd.git
 
/* 分支管理 */
  Git鼓励大量使用分支:
  查看分支:git branch
  查看所有分支(包括远程分支):git branch -a
  创建分支:git branch <branch-name>
  切换分支:git checkout <branch-name>
  创建+切换分支:git checkout -b <branch-name>
  合并某分支到当前分支:git merge <branch-name>
  合并某分支到当前分支(普通模式):git merge --no-ff -m "提交记录" <branch-name>
  取消合并:git merge -abort
  删除分支:git branch -d <branch-name>
  删除远程分支:git push origin :<branch-name>(origin后面的空格不能少)
 
 
/* bug分支 */
  git stash把当前工作现场“储藏”起来,等以后恢复现场后继续工作
  git stash list可以查看刚刚储藏的工作现场
  git stash apply恢复,但是不删除stash的内容,用git stash drop来删除
  git stash pop恢复的同时删除stash的内容
 
 
/* feature分支 */
  开发一个新的feature,最好新建一个分支
  如果要丢弃一个没有被合并过的分支,可以通过git branch -d <name>强行删除
 
 
/* 多人合作 */
  git remote或者 git remote -v
  从本地推送分支,使用git push origin branch-name,如果推送失败,选用git pull抓取远程的新提交
  在本地创建和远程分支对应的分支git checkout -b branch-name origin/branch-name
  建立本地分支和远程分支的关联git branch —set-upstream branch-name origin/branch-name
  从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
 
/* 最后比较好玩的自定义log */
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

iOS开发之git学习的更多相关文章

  1. IOS开发之XCode学习011:UISwitch控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIswitch控件,添加UIswitc ...

  2. IOS开发之XCode学习009:UIViewController使用

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 通过点击屏幕事件,调用ViewController ...

  3. IOS开发之XCode学习007:UIWindow对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...

  4. IOS开发之XCode学习012:Slider和ProgressView

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UISlider和UIProgressV ...

  5. IOS开发之XCode学习010:定时器和视图对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...

  6. IOS开发之XCode学习008:UIViewController基础

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在i ...

  7. IOS开发之XCode学习013:步进器和分栏控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIStepper和UISegmente ...

  8. IOS开发之XCode学习014:警告对话框和等待提示器

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框 ...

  9. iOS开发之CocoaAsyncSocket学习

    本文转载至 http://blog.csdn.net/l_ch_g/article/details/17050757 AsyncSocket AsyncSocket类是支持TCP的AsyncUdpSo ...

随机推荐

  1. 第二章实例:Android窗口菜单显示

    package test.main.cls; import com.example.popupwindow.R; import android.app.Activity; import android ...

  2. C#面试题总结——程序设计基础

    一.类型与变量 1.C#支持哪几个预定义的值类型? 主要包括五个类型:整数,浮点数,字符型,bool类型以及decimal型(小数型).其中每一个类型分别有多个内置类型组成. 2.C#支持哪几个预定义 ...

  3. Struts2中使用Session的两种方法

    在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.st ...

  4. u-boot基本命令

    1.查看环境变量 printenv 2.网络相关命令 设置开发板ip:setenv ipaddr 192.168.2.110 设置子网掩码:setenv netmask 255.255.255.0 设 ...

  5. 利用jQuery实现的Ajax 验证用户名是否存在

    异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...

  6. python socket 编程之一:编写socket的基本步骤

    一.socket 编写server的步骤: 1.第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family ...

  7. Number Sequence (HDoj1005)

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  8. 解决eclipse无法解析shared_ptr

    今天心血来潮更新了一下机器上的ubuntu,装了14.04版本,原来是32位的,换成64的之后感觉是快了不少(加了内存).因为不少软件没做备份,包括eclipse,所以只得重装,重装之后的麻烦事儿就是 ...

  9. python 解释器内建函数001

    python解释器内建函数列表如下: 001.abs() 求绝对值 #!/usr/bin/python if __name__=="__main__": print(abs(-10 ...

  10. Oracle EBS-SQL (QA-1):检查超出检验周期的检验数据.sql

    select msi.segment1                                    物料编码,          msi.DESCRIPTION                ...