本人是参考廖雪峰的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. JS获取request字符串

    function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...

  2. C - The Hardest Problem Ever

    Description Julius Caesar lived in a time of danger and intrigue. The hardest situation Caesar ever ...

  3. Javascript-数据类型、类型转换

    typeof 判断数据类型: var n = 1; var t = "echo"; var fn = function() {} var arr = [1,2,3]; typeof ...

  4. PHP封装Excel表方法使用流程

    今天总结了一下Excel表的封装和导出使用,原理 经常使用与一些日常报表, 数据报表, 实现方法比较简单, 一次封装, 简单的方法调用,简单~ 废话不多说,直接入正题, 先说下重要的参数要记住的东西 ...

  5. 喷水装置(一)--nyoj题目6

    喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中 ...

  6. MySQL冷备份的跨操作系统还原

    数据来源:linux平台mysql版本为5.7 数据去向:windows平台mysql版本为5.7 操作步骤: 第一步:关闭mysql服务 service mysqld stop 第二步:归档linu ...

  7. 局域网内IP冲突怎么办

      对于在Internet和Intranet网络上,使用TCP/IP协议时每台主机必须具有独立的IP地址,有了IP地址的主机才能与网络上的其它主机进行通讯.但IP地址冲突会造成网络客户不能正常工作,只 ...

  8. 一步一步学python(四) - 字典

    1.字典的使用 创建字典:phonebook = {'Alice': '1234' , 'Beth':'9120'} 2.dict函数 >>>items = [('name','Gu ...

  9. SDK Manager 报错:Connection timed out: connect

    安装Eclipse的安卓开发环境的时候,安装sdk时报错,出现: 解决办法: 1.选择左上角的Tools 2.选择Options,勾选下面红色框的东西 3. 4.重新重启一下sdk manager即可

  10. Delphi与Javascript的交互

    网络上也有人写了关于Delphi与Javascript的文章,其大多数使用ScriptControl等,均无法达到与Delphi自身融合的效果.我也是在翻阅自己的组件库的时候发现了这个以前收集来的代码 ...