一、分支管理

在Git里,master是主分支,同时可以创建其他分支,支持各分支合并到主分支上,基本命令如下

          

1.创建分支

git checkout -b dev       创建dev分支,并切换到dev分支

相当两条命令: git branch dev 创建dev分支  与  git checkout dev  切换到dev分支

                                                      

    2.查看分支
git branch [-a]

        3.合并分支

            

            dev分支的工作成果合并到master分支上: git merge dev

4.删除分支

合并完成后,就可以放心地删除分支了

git branch -d dev

5.解决冲突

            两个分支都修改,都提交了,合并会产生冲突

                

           

       5.分支策略

          在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

然后,在dev分支上干活,也就是说,在某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

团队中的每个人都在dev分支上干活,每个人同时也都有自己的分支,时不时地往dev分支上合并就可以了。

或者,直接弄dev分支也可以,就像使用SVN一样

二、多人协作

       1.从远程库克隆项目到本地

          git clone 地址 [本地目录]  

       2.查看远程库信息

3.推送分支

         推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

git push origin master

         推送其它分支:比如dev

git push origin dev

4.抓取分支

多人协作时,团队成员都往masterdev分支上推送各自的修改

git pull 相当于两条命令:    git fetch 相当于update   与   git merge origin/master

三、标签管理

       1.创建标签

          git tag 标签名称 分支名称     或       先checkout切换到要打标签的分支,然后 git tag 标签名称

          git tag -a 标签名称 -m "指定标签信息"  

       2.查看标签(所有)

     git tag   

3.将标签推送到远程服务器

         git push origin 标签名称         或者,一次性推送全部尚未推送到远程的本地标签     git push origin --tags 

       4.删除标签

          删除本地标签: git tag -d 标签名称

删除远程库的标签(如果远程库有标签):  git push origin :refs/tags/<tagname>

四、忽略特殊文件

      有些文件是不需要提交,比如一些txt、.bak或者npm的东西,需要让git忽略一些文件,需要引入 .gitignore文件

# 以'#' 开始的行,被视为注释.
# 忽略掉所有文件名是 foo.txt 的文件.
# foo.txt
# 忽略所有生成的 html 文件,
# *.html
# foo.html是手工维护的,所以例外.
# !foo.html
# 忽略所有.o 和 .a文件.
# *.[oa]
# /bootstrap/compiled.php
# /vendor
# composer.phar
# .env.*.php
# .env.php
# .DS_Store
# Thumbs.db
# sftp-config.json
# /nbproject/private/
.idea # app/controllers/TestController.php # app/views/test/index.blade.php

需要将忽略文件提交至本地库,并推送至远程库

写到这里,Git的使用基本就完成了,不过个人本身对这些操作命令真是不屑一顾,有TM工具(Tortoise Git),多方便呀,个人比较反感装逼,直接 pengXX 多好呀。妈的一个工具,整那么复杂干啥,蛋疼地写完这边文章,我强烈建议大家看看下一篇文章,咱都好好的,别装逼,装逼招雷劈!

下一篇,咱就讲解如何像使用svn 一样使用 git。

       

Git 安装与使用(二)的更多相关文章

  1. 版本管理之Git(二):Win7上Git安装及简单配置过程

    一.安装包 msysgit(Windows版本的Git) 下载地址:http://code.google.com/p/msysgit/downloads/list?q=full+installer+o ...

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

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

  3. git安装和使用(二)

    一.git安装 1.目的 通过git管理github托管项目代码 2.下载安装 Git - Downloading Package​www.git-scm.com 点击桌面,右击鼠标,出现两个git单 ...

  4. 二、Git安装--Windows

    Git安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://gi ...

  5. Git安装与配置

    一.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  6. Git 安装

    安装参考资料: http://lzw.me/a/msysgit-tortoisegit-win-git.html http://blog.csdn.net/qwiwuqo/article/detail ...

  7. 转 git安装配置

    Win7上Git安装及配置过程 一.安装说明 1.Git在windows平台上安装说明. Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...

  8. git安装--linux下的安装

    一般linux自带git版本很旧,会有一定问题,可以先卸载系统自带git: yum remove git下载及安装git: wget https://github.com/git/git/archiv ...

  9. Win7上Git安装及配置过程

    Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...

  10. git学习——<一>git安装

    一.windows.linux平台安装 windows平台安装简单方便,到git官网上下载exe安装包即可,会把git bash shell给你安装好,你到命令窗口便可直接使用. linux平台安装, ...

随机推荐

  1. Hadoop发展历史简介

    简介 本篇文章主要介绍了Hadoop系统的发展历史以及商业化现状, 科普文. 如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.com/xuanku/p/index.h ...

  2. /proc/sysrq-trigger详解

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://itnihao.blog.51cto.com/1741976/830374 htt ...

  3. xcode 3.x版本中的Executables 到xcode 4.x中怎么找不到了?

    转自:http://zhidao.baidu.com/question/327868169.html 1 在Scheme处选择Edit Scheme 2 点击Run(Debug) 3 在Argumen ...

  4. Python学习 之 switch语句

    1.python并没有提供switch语句,python可以通过字典实现switch语句的功能,实现方法分为两步 —首先,定义一个字典 —其次,调用字典的get()获取相应的表达式 通过字典调用函数 ...

  5. iframe自适应高度的多种方法方法小结

    对于自适应高度的代码有很多,可效率什么的考虑进来好代码就不多见了,不过思路倒是差不多的  不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 ifram ...

  6. 小白日记16:kali渗透测试之弱点扫描-openvas、nessus

    漏洞扫描工具 1.openvas OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器.在kali上默认集成openvas.在kali上,配置相对简单[几乎每天都在更新] 实 ...

  7. org.apache.hadoop.fs-ChecksumException

    当ChecksumFileSystem出现问题时抛出 package org.apache.hadoop.fs; import java.io.IOException; /** Thrown for ...

  8. ConcurrentHashMap 源码解析 -- Java 容器

    ConcurrentHashMap的整个结构是一个Segment数组,每个数组由单独的一个锁组成,Segment继承了ReentrantLock. 然后每个Segment中的结构又是类似于HashTa ...

  9. Uva120 Stacks of Flapjacks 翻煎饼

    水水题.给出煎饼数列, 一次只能让第一个到第i个数列全部反转,要求把数列排序为升序. 算法点破后不值几钱... 只要想办法把最大的煎饼放到最后一个,然后就变成前面那些煎饼的数列的子题目了.递归或循环即 ...

  10. truncate与delete 、drop的区别

    注意事项 1.在oracle中数据删除后还能回滚是因为它把原始数据放到了undo表空间. 2.DML语句使用undo表空间,DDL语句不使用undo,  而delete是DML语句,truncate是 ...