2.15 删除文件

$ rm testDel.txt删除掉工作区的testDel.txt文件,

1)这时可以通过git checkout -- testDel.txt从版本库恢复该文件到工作区

2)确实要删除它, 可以使用 git rm testDel.txt,  然后提交git commit -m 'info'

3) 如果删除了,并且提交了,再用checkout -- filename就找不到文件了,

只能通过版本号还原 git reset --hard 0581460, 再 git checkout -- filename, 同步到工作区

2.16 远程仓库 操作

1)创建ssh key

  $ ssh-keygen -t -rsa -C "myemail@email.com"

2) 登陆github账号

将id_rsa.pub文件的内容复制到SSH keys页面的相应位置, 然后Add keys

  

  

2.17 添加远程库

1) 在github上创建一个空的仓库work

将本地的work仓库和远程的work仓库关联 git remote add testwork git@github.com:yilifighter/work.git

将本地仓库的master版本推送到git  git push -u testwork master

(第一次加-u起关联作用,以后不需要)简化为

git push testwork master

git push -fu testwork master可以强制覆盖远程的master分支

2.18 远程克隆

1)使用ssh支持的git协议

git clone git@github.com:yilifighter/ImgServerPro.git

2) 使用https协议

git clone https://github.com/yilifighter/second_github_project

3) 指定地址 克隆

git clone git@github.com:yilifighter/second_github_project.git 'c:\work\second_github_project'

指定的目录应为空

2.19 分支

1)创建分支git branch dev

2) 检出(切换)分支git checkout dev

3)创建并检出分支 git checkout -b dev

4)查看分支 git branch

在新分支上创建文件newBranchFile.txt,并提交

 

切换分支 git checkout master

(查看当前分支master, newBranchFile.txt文件不在)

5)合并分支 git merge dev

该命令合并指定分支(dev)到当前分支(master)

(再查看当前分支文件, newBranchFile出现)

 6)删除分支 git branch -d dev

(dev当前分支名)  

  

 2.20 解决冲突

  1)创建新的分支branch2,修改newBranchFile.txt文件并提交

2) 切换到master分支,再次修改newBranchFile.txt文件并提交

此时合并分支,出现冲突

3)查看冲突的文件

git status

  4) 查看合并情况

git log --graph --pretty=oneline --abbrev-commit

5) 删除分支

2.21 分支管理

  Fast forward 模式在删除分支后会丢失分支信息

--no-ff 禁用Fast forward模式,会在提交时生成一个commit,则可以看到分支信息

查看日志

master分支是稳定版本,一般用来发布新版本, 平时不在上面干活,

小伙伴们平时都在dev分支上干活,都有自己的分支, 再合并到dev

2.22 Bug分支

  当在dev分支上进行开发时, 如果需要修改master分支上的bug,怎么办?

直接切换到master分支上,不行  

而dev一时半会开发不完,不能提交,合并

如上提示中所说, 需要stash保存当前工作现场

  

此时用git status查看,当前分支是干净的,就像回到刚创建并切换分支的状态

  然后创建并切换到bug-1分支,解决bug并提交

合并bug-1分支,并删除之

用git stash list查看工作现场

恢复现场,并删除现场

方式一:

git stash apply; git stash drop.

 方式二:

git stash pop

 可以通过git stash apply stash@{num} 来恢复指定的stash

删除现场

git 使用笔记(二)的更多相关文章

  1. Git学习笔记 (二)

    Git学习笔记(二) 突然发现,学习新知识新技能,都得经常温故使用,这样才能日益精进.最近学习的Git是因为加入了课题组,在学习做一些后台,由于后台开发会牵扯到多人开发,所以学会Git这一代码管理工具 ...

  2. Git学习笔记(二) 远程仓库及分支

    添加远程仓库(以GitHub为例) 所谓的远程仓库,其实就和本地仓库一样,只是我们本地电脑可能会关机什么的.远程仓库的目的就是保证7*24小时开启状态.GitHub是一个很好的公共Git远程仓库(后面 ...

  3. git学习笔记二-branch分支

    1.刚创建好的空仓库的分支是空的,即使是master分支也是不存在的.master分支是不能通过git branch 来创建的,只有在完成第一次提交才会自动创建,有git自动完成master分子的创建 ...

  4. Git学习笔记二--工作区和暂存区

    Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 简单理解: 我们使用mkdir Git在d盘下创建的文件夹,就是工作区,我们编辑readme.txt文件就是在工作区下完成的: gi ...

  5. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  6. Git学习笔记(二) · 非典型性程序猿

    远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...

  7. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  8. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  9. 《Pro Git》笔记3:分支基本操作

    <Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和 ...

随机推荐

  1. 查看JAVA进程中哪个线程CPU消耗最高

    一,在centos linux 上查看进程占用cpu过高 top  shift+h 查看哪个进程程消耗最高     二,查看JAVA进程中哪个线程消耗最高   2.1 导出java运行的线程信息   ...

  2. IOC容器特性注入第一篇:程序集反射查找

    学习kooboo的框架发现它的注入容器方法比较特别,同样是利用MVC的注入点,但它是查找网站下面bin所有的DLL利用反射查找特性找到对应的服务注入到容器. 这样的好处很简单:完全可以不用关心IOC容 ...

  3. synchronized关键字,Lock接口以及可重入锁ReentrantLock

    多线程环境下,必须考虑线程同步的问题,这是因为多个线程同时访问变量或者资源时会有线程争用,比如A线程读取了一个变量,B线程也读取了这个变量,然后他们同时对这个变量做了修改,写回到内存中,由于是同时做修 ...

  4. CSS基础(七):z-index详解

    概念 z-index 属性设置元素的堆叠顺序.拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. 层级关系的比较 1. 对于同级元素,默认(或position:static)情况下文档流后面的 ...

  5. How to Debug Enterprise Portal Code in Dynamics AX 2009

    转载 To set up debugging for pages1. Log into the server that is running the AOS.2. Open the Microsoft ...

  6. SQLServer 获得所有表结构(包括表名及字段)

    then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, ( then '√'else '' end) 标识, (case when (SE ...

  7. 解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题

    转自cocoachina iOS 7能在后台自动app,这对开发者来说和用户都很方便,但是还是有一些缺点.用户不会知道app本次更新的内容,除非他们上到app的App Store页面去查看.开发者也会 ...

  8. oracle 11g 如何创建、修改、删除list-list组合分区

    Oracle11g在分区方面做了很大的提高,不但新增了4种复合分区类型,还增加了虚拟列分区.系统分区.INTERVAL分区等功能. 9i开始,Oracle就包括了2种复合分区,RANGE-HASH和R ...

  9. 挑选分组中top1

    select * from( select *, ROW_NUMBER() over(partition by accountid order by opentime DESC) as rowNumf ...

  10. 【PRML读书笔记-Chapter1-Introduction】1.1 Example:Polynomial Curve Fitting

    书中给出了一个典型的曲线拟合的例子,给定一定量的x以及对应的t值,要你判断新的x对应的t值多少. 任务就是要我们去发现潜在的曲线方程:sin(2πx) 这时就需要概率论的帮忙,对于这种不确定给t赋何值 ...