最近学习了一下版本控制中比较符合开发者气质的Git,这里做一个总结。一来梳理所学的内容;二来也作为起点后续继续丰富。学习的方式主要为网络学习和个人实践。推荐两个学习网页,互相参考必有所成。

  博客园:http://www.cnblogs.com/best/archive/2017/09/07/7474442.html

  廖雪峰:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  ------------------------------------------------------------------------------------------------------------

  1、工具准备

    a、下载Windows GUI:https://git-scm.com/ 【安装完成后,鼠标右键中将会出现git bash here和git gui here;这里我们主要用git bash here,这里类似于Linux命令,git + cmd】

    b、在github上注册一个账号:https://github.com

    b、小乌龟(工作中可能要):https://download.tortoisegit.org/tgit/2.5.0.0/

    d、smart git工具,windows模式助你完成命令难处理之处

  2、实践准备

    a、桌面上新建一个文件夹(项目:test),选中文件夹右击后,选择git bash here .

    b、为test创建git版本管理,执行: git init【你会在test文件夹下,看到隐藏文件夹.git,里面有HEAD/refs等。这就是用来进行版本控制的东西】

  3、基本知识

    a、Git含远程(github)在内,可以分为4个区。I(工作区-WorkSpace,即为test除了.git文件之外的部分)、II(暂存区-Stage/Index,即为.git中的Index部分)、III(本地版本区-Local Resopsity)、IV(远程版本区-github上)

    b、个人在工作区进行写代码和文档,完成后提交到暂存区,在提交到本地版本区,无误后再提交到远程端。由于项目本身可能是多人协作,大家都可以从远程端clone项目文档到本地开发。Git提供了不错的分支、标签和版本切换。基本所有过程可追溯、可逆。

    c、git中的文件类型:Untracted(项目新文件)、Unmodified(项目原始文件)、Modified(项目被修改文件)、Staged(暂存区中文件)。查看文件状态:git status [filename],系统会告诉你可能用到的一些脚本提示。

  4、常用命令

    git status:查看文件状态

    git add . 将当前目录下文件添加到stage中

    git commit -m "mesage"  提交到本地库,注释信息:message

    git checkout -b bname  切换分支,如果不存在则新建

    git log --pretty=oneline 查看本地日志历史,当前所在会有Head指向

    git merge master 在本地分支合并master代码

  5、场景1(团队协作)

    a.git clone ** //克隆代码待本地

    b.git checkout -b *** //新建分支

    c.develop or modify

    d.git add . //加入到stage中

    e.git commit -m "message" //提交到本地库

    f.review代码

    g.git checkout  master 切换到主分支

    h.git pull  更新代码

    i.git checkout ***切换分支

    j.git merge master //把master分支内容合并到当前分支中。

    k.git push origin ***  推送到远程库

  6.场景2(修复bug)

    a.git add .

    b.git stash  //放入临时中

    c.git checkout bugBranch

    d.git pull --rebase origin master

    e.fix bug

    f.git add.

    g.git commit -m "message"

    h.git push

    i.git checkout ***

    j.git stash pop //切换回工作分支,并回复临时保存的工作场景

    

版本控制之git学习的更多相关文章

  1. 【IntelliJ IDEA学习之九】版本控制之Git和Github

    版本:IntelliJIDEA2018.1.4 [IntelliJ IDEA学习之九]版本控制之Git版本:IntelliJIDEA2018.1.4 一.git知识准备git是目前流行的分布式版本管理 ...

  2. Git 学习看这篇就够了!

    Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...

  3. git学习资料包

    1.廖雪峰老师的git教程:https://www.liaoxuefeng.com    -----点击“GIT教程”开始学习 2.菜鸟教程git学习:http://www.runoob.com/gi ...

  4. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  5. SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载

    对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...

  6. Git学习之第一次使用PR

    发起PR的流程 1.Fork想要pr的项目,在自己的仓库里建立一个相同的项目. 2.Clone我们Fork的项目,在本地建立一个项目,方便修改. 3.将修改后的本地项目上传到github上. 4.向原 ...

  7. 个人git链接和git学习心得总结

    个人git链接和git学习心得总结 个人git链接: https://github.com/hanzhaoyan Git 是 Linux 的创始人 Linus Torvalds 开发的开源和免费的版本 ...

  8. 版本控制工具Git工具快速入门-Linux篇

    版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...

  9. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

随机推荐

  1. Python中字符串操作函数string.split('str1')和string.join(ls)

    Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...

  2. spring-boot 访问时,加与不加项目名分析

    众所周知,springboot非常便捷,可以简化项目开启步骤,加快开发进度. 很多新手也许都遇到过这样一个问题,在以往的springMvc项目里,大家伙都是把打的war放在tomcat中运行,下意识的 ...

  3. BZOJ 1179 抢掠计划atm (缩点+有向无环图DP)

    手动博客搬家: 本文发表于20170716 10:58:18, 原地址https://blog.csdn.net/suncongbo/article/details/81061601 https:// ...

  4. 转载 - KMP算法

    出处:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html KMP算法 在介绍KMP算法之前,先介绍一下BF算法. 一. ...

  5. 洛谷 P2633 Count on a tree

    P2633 Count on a tree 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中last ...

  6. 日志输出最不重要的就是控制台输出,控制台输出就是system.out而已

    1.日志输出最不重要的就是控制台输出,控制台输出就是system.out而已 2.所以日志输出时候会存在一个Bug就是:stdout要配置在日志输出的最前面,因为stdout控制台输出,最不重要,如果 ...

  7. const指针总结

    const 总结: 假设keywordconst出如今星号左边.表示被指物是常量:即不能通过指针改动变量的值. 假设keywordconst出如今星号右边,表示指针自身是常量:即不能改变指针的指向. ...

  8. Unity3d数据加密

    在unity中能够使用c#自带的对称算法对数据进行加密,以下两种加密算法: using System; using System.Text; using System.Security.Cryptog ...

  9. DeepLearning to digit recognizer in kaggle

    DeepLearning to digit recongnizer in kaggle 近期在看deeplearning,于是就找了kaggle上字符识别进行练习.这里我主要用两种工具箱进行求解.并比 ...

  10. Shell编程中Shift的用法【转】

    本文转载自:http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html Shell编程中Shift的用法 位置参数可以用shift ...