版本控制之git学习

  最近学习了一下版本控制中比较符合开发者气质的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 //切换回工作分支,并回复临时保存的工作场景

  7. 场景3 (分支管理:把本地的替换成远程的)

git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull

   8. 从远程拉取指定分区到本地

git checkout -b 本地分支名 origin/远程分支名

 

  

    

posted @ 2018-12-02 20:14  999.感冒灵  阅读(284)  评论(0编辑  收藏  举报