本人是参考廖雪峰的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. thinkphp的条件的多种写法

    class SelectAction extends Action{   function index(){ //thinkphp 查询语言  //         1.普通查询 //   2.区间查 ...

  2. WinForm常用代码

    //ToolStripSplitButton是标准按钮和下拉按钮的组合,各自工作,但有联系,感觉上后者是没有向下箭头ToolStripDropDownButton:ToolStripDropDownB ...

  3. 关于.netFramework概述

    这几天学了不少东西,想来还是应该总结一下,一来自己回顾一下,二来也怕自己忘记,在文章中,有很多东西就是借鉴别人的blog,笔者在这里对他们的无私奉献表示感谢.笔者的语言组织能力有限,如果在文章中出现什 ...

  4. js继承 prototype和constructor

    function a(){                 this.name="aaa";             }             function b(){     ...

  5. Foundation--NSDictionary+NSMutableDictionary

    键值对 key(一般为字符串对象)---vaule(必须是对象) Person *p1 =[[Person alloc ]init]; Person *p2 =[[Person alloc ]init ...

  6. HDU 1057 - A New Growth Industry

    简单的模拟. 给定天数n,给定D[0]~D[15]给定一个20*20的矩阵.每个格子内有一个0~3的数字,表示细菌数.每天,每个格子将加上D[k],k表示这个格子以及上下左右相邻格子的细菌之和(矩阵外 ...

  7. Mac ssh登陆linux并且显示linux图形

    背景: Mac 通过[终端]ssh登陆linux并且在Mac显示linux图形 Mac 主机IP: 10.2.1.1 linux 主机IP: 192.168.1.1 说明: 想要ssh访问并且显示li ...

  8. Seeding--zoj2100

    Seeding Time Limit: 2 Seconds      Memory Limit: 65536 KB It is spring time and farmers have to plan ...

  9. python操作redis-hash

    #!/usr/bin/python #!coding: utf-8 import redis if __name__=="__main__": try: conn=redis.St ...

  10. 混合使用Azure LB和ILB访问相同web服务(1)

    在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比 ...