git manual

一、代码提交

  • 将新建文件加入到暂存区

git add hello_world.c   #将hello_world.c加入到暂存区
  • 将所有改变的文件加入到暂存区

git add.  #将hello_world.c加入到暂存区
  • 查看当前状态

git status
  • 将暂存区的文件提交到本地的git仓库

    git commit -m "add:添加一个新文件...."
    
  • 将本地的git代码提交到git服务器

    git push #提交到git服务器仓库
    
  • 退回到某一次提交的版本

    git reflog #获取提交的版本号
    git reset --hard xxxxx
    

二、查看分支

  • 查看本地分支

    git branch  #列出本地已经存在的分支,并且当前分支会用*标记
    

  • 查看远程分支

    git branch -r   #查看远程版本库的分支列表
    

  • 查看所有分支

    git branch -a     #查看所有分支列表(包括本地和远程,remotes/开头的表示远程分支)
    

  • 查看最后一次提交的分支

    git branch -v     #查看一个分支的最后一次提交
    

  • 查看已合并的分支

    git branch --merged   #查看哪些分支已经合并到当前分支
    
  • 查看未合并的分支

    git branch --no-merged  #查看所有未合并到工作的分支
    

三、创建和切换分支

  • 创建新的分支

    git branch 新分支名称
    
  • 切换分支

    git checkout 新分支名称
    

  • 创建分支的同时,切换到该分支上

    git checkout -b 新分支名称
    

四、从远程仓库pull(拉取)代码到本地分支

  • 指定远程分支和本地分支

    git pull origin 远程分支名称:本地分支名称
    
  • 如果不屑本地分支名称,则默认和远程分支同名

    git pull origin 远程分支名称:
    

五、将新分支推送到远程仓库

git push origin 分支名称

六、删除分支

  • 删除本地分支(不能删除当前所在的分支,如果要删除,必须切换到其他分支上)

    git branch -d 分支名称
    
    说明:如果删除时报错:error: The branch '分支名称' is not fully merged. (意思       是:分支未完全合并)。解决方法是使用 -D 强制删除,代码如下:
    
git branch -D 分支名称
  • 删除远程分支

    git push origin :分支名称
    
    注意:分支名称前有个冒号,分支名前的冒号代表删除
    

七、合并分支

  • 加入我们当前位于分支tempbranch上,刚开发完一个功能,执行如下命令提交到当前分支上:

    git add .
    git commit -m "add:临时测试函数功能完成,提交到tempbranch分支"
    git push -u origin tempbranch
    

  • 切换到master分支上

git checkout master

  • 如果多人开发的状态,需要把远程的master分支上的代码pull下来

    git pull origin master
    

  • 然后把tempbranch 分支的代码合并到master上

    git merge tempbranch
    

  • 如果git merge的时候出现冲突,可以执行下面的命令取消merge:

    git merge --abort:
    
  • 然后查看状态

    git status
    
  • 最后push到远程仓库

    git push origin master
    

八、概念说明

  • 什么是分支?

1.Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

2.Git保存的不是文件的变化或者差异,而是一系列不同时刻的快照 。在进行提交操作时,Git 会保存一个提交对象(commit object)。 该提交对象会包含一个指向暂存内容快照的指针,还包含了作者的姓名和邮箱,提交时输入的信息以及指向它的父对象的指针。 首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象, 而由多个分支合并产生的提交对象有多个父对象。

3.分支在实际开发中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响别人工作。

  • 什么是派生?

派生的意思就是分支支流,gitblit上的派生,实际上就是git的分支,主支是master。

参考GitBlit的使用教程
Git详细教程

史上最全的Git使用手册相关推荐

  1. 史上最全的git 常用命令集合

    # 工程下载.分支的增删查改 工程下载: clone 远程工程:git clone https://XXXX.git fetch 远程分支到本地某分支:git fetch origin <org ...

  2. 史上最全的MySQL优化手册

    MySQL数据库优化大全 (注:文档参考高性能MySQL,SQL手册,官方文档 [提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 大 ...

  3. 【必备】史上最全的浏览器 CSS JS Hack 手册

    浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本("杰出代表"是 IE)也有差异.因此,浏览器兼容成为前端开发人员的必备技能.如果有一份浏览器 Hack 手册,那查询起来就方 ...

  4. 史上最全“Git插件+码云+分支” 使用步骤详解

    版本控制也就那么回事!!! 史上最全"Git插件+码云+分支" 使用步骤详解 1.准备Git: 1.1 下载Git到本地: 首先在华为镜像云里面搜索"Git-For-Wi ...

  5. GitHub 标星 44k!史上最全技术面试手册!

    大家好,我是为前端娱乐圈操碎了心的小迷妹,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标. 每天上班必须做的一件事情,就是打开 ...

  6. [收藏]可能是史上最全免费编程书籍

    目录 语言无关 IDE MySQL NoSQL PostgreSQL Web WEB服务器 其它 函数式概念 分布式系统 在线教育 大数据 操作系统 数据库 智能系统 正则表达式 版本控制 程序员杂谈 ...

  7. 史上最全的软件工程师资料收集

    目录 语言无关 IDE MySQL NoSQL PostgreSQL Web WEB服务器 其它 函数式概念 分布式系统 在线教育 大数据 操作系统 数据库 智能系统 正则表达式 版本控制 程序员杂谈 ...

  8. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发...

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文   http ...

  9. 【干货】史上最全的Tensorflow学习资源汇总,速藏!

    一 .Tensorflow教程资源: 1)适合初学者的Tensorflow教程和代码示例:(https://github.com/aymericdamien/TensorFlow-Examples)该 ...

最新文章

  1. django正反向查询
  2. Django 布署6.5
  3. 中文预训练ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍、速度快1倍
  4. 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
  5. 亲近自然的加州玻璃豪宅
  6. SNMP高速扫描器braa
  7. python3 not 用法
  8. 阻尼衰减曲线用python_高阻尼隔震橡胶支座结构及防震效果
  9. 运行Hadoop自带的wordcount单词统计程序
  10. C#LeetCode刷题之#160-相交链表(Intersection of Two Linked Lists)
  11. mysql置信度支持度,支持度 置信度 提升度
  12. Android应用程序中的多个Activity的显示创建和调用
  13. 桌面有u盘符计算机里没有了,教你电脑不显示u盘盘符怎么办
  14. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本
  15. laravel很慢_Laravel网站打开速度优化的方法汇总
  16. 专为医疗领域打造!飞凌嵌入式新一代FDU显控一体机发布
  17. 八年级地理上册复习提纲(星球版)
  18. 我的达内Java培训经历
  19. 高分辨率屏电脑 centos虚拟机屏幕使字体变大的方法
  20. Ubuntu18 安装98五笔

热门文章

  1. 蜂群思维三个关键词:群体智慧、分布式、涌现
  2. java 使用JSONUtil工具类
  3. Word中批量制作录取通知书amp;工资条
  4. 算法-蓝桥杯习题(3-1)
  5. javascript实现省市县联动
  6. 超详细域名备案+阿里云服务器配置+小程序开发(简略)+前后端分离(简略)
  7. A091_hrm07_用户中心_注册
  8. 学习笔记之软件测试4:CSDN账号密码登陆自动化测试实现(Selenium+Unitest)
  9. 成都java薪资待遇怎么样?还值得学习吗?
  10. Copy BOM and Rounting 说明