这里记录一些 Git 在 Windows 操作系统下使用方法:

  安装完毕后,先让Git 记录自己的名字:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

一、 创建版本库

  在要创建版本库的文件夹空白处 右键打开菜单 选择 "Git Bash Here" 选项来打开 类似 "命令行"的窗口

  确定好目录后  就可以利用 git init 把目录变成仓库

  $ git init

Initialized empty Git repository in xxxxxxxxx

二、添加文件到仓库

  命令  $git add <file> 添加到仓库, 然后 $git commit 提交到仓库

$git add index.php

$git commit -m "添加修改注释"  //注释部分很重要 必须

三、查看状态

  $git status    //查看结果

  $git diff      //查看修改部分

四、版本回退

  $git log     //查看历史记录

  $git reset --hard HEAD~1  //会退到历史上上1个版本

  $git reset --hard xxxxxxid  //会退到ID为 xxxx 的版本

  $git reflog     //获取 Git 上操作记录

五、撤销修改

$git checkout -- file     //撤销修改  -- 前后都有空格 误删文件也可以回复

$git rm index.php     //删除文件的话 得运行一遍

   以上为本地部分的操作


  网络部分

六、远程仓库

$git remote add origin git@github.com:xiaoyueguang/JavaScript-Libraries.git  //将目前本地仓库 连接到 远程仓库上

$git push -u origin master  //推送 master 分支上所有的内容到远程仓库(第一次关联的时候使用)

$git push origin master  //推送 master 分支上最新的修改到远程仓库(本地修改提交后使用)

$git clone git@github.com:xiaoyueguang/JavaScript-Libraries.git  //将远程仓库 创建以该仓库名的文件夹,复制内容到本地上。

$git pull origin master  //拉取远程仓库上 master 分支的所有内容到本地仓库里

七、分支管理

  分支是GIT非常重要的概念。每个人都会有不同的分支。

  一般我都使用以下分支

    master 为 主分支,是最稳定的.只有当 dev 开发分支上功能稳定的时候,合并到 master 分支上,并发布一个新版本。需要时刻同步。

    dev 为 开发的分支,平时开发完成后将开发分支合并到该分支上。需要时刻同步。

    issue 为 BUG 分支。修复 BUG 时创建该分支,修复完成后合并到 出 BUG 的分支上,并删除该分支。不需要时刻同步。

    feature 为 开发新功能分支。完成后合并到 dev 分支上并删除。视情况而定(多人协作则时刻同步,另建分支合并上去。单人开发则无需时刻同步,直接合并到DEV分支上。)

    gh-pages 为 github 主页的分支(存放主页内容)。

    除此之外,每次开发新功能的时候应当创建一个新分支,完成后合并到 dev 分支上。

$git checkout -b dev  //创建并切换到 dev 分支进行开发(切换分支后,本地仓库内容都会有所变化),所以要 即时保存当前工作内容 或者 提交修改

$git branch  //查看所有分支,当前分支前会有 * 号

$git branch dev  //创建分支

$git merge dev  //合并 dev 分支到当前分支

$git branch -d dev  //删除分支

$git log --graph  //查看分支合并图

  冲突:

  有时候你开发的周期比较长,在你开发期间,团队里有人提交了 commit ,会导致远程仓库的内容和你当前本地内容不一致,这时候合并会出现冲突!

  当冲突出现的时候, GIT 会把内容放到一起, 在文件里 用 <<<<<<, >>>>>>, ====== 表示出不同分支的内容。

  等我们手动解决后,再利用  git add、 git commit 来完成提交。

  BUG:

  当出现一个急需处理的BUG后,我们应当这么做

$git stash  //保存当前的工作区(可保存多次)

$git status  //查看工作区

$git checkout master  //跳转到出 BUG 的分支

$git checkout -b issue-101  //创建 BUG 分支

//做完相应的修改后,提交

$git checkout master  //跳转到出 BUG 的分支

$git merge -m "合并分支" issue-101  //合并分支

$git branch -d issue-101  //删除 BUG 分支

$git stash list  //查看工作区

$git stash apply  //恢复工作区, stash内容还在

$git stash pop  //恢复工作区,stash内容清空(建议采用此方法)

八、标签管理

  给当前状态打个标签,以后可以方便的查看该标签的状态。

$git tag V1.0  //在当前的 commit 上 新建一个标签

$git tag -a V1.0 -m "标签状态"  //指定标签信息

$git tag -s V1.0 -m "PGP签名"

$git tag  //查看所有标签

$git push origin V1.0  //推送本地标签到远程仓库

$git push origin --tags  //推送全部未推送过的标签

$git tag -d V1.0  //删除标签

$git push origin :refs/tags/V1.0  //删除远程标签


九、自定义 GIT

  为了让 GIT 更容易使用,我们可以自定义 GIT。

$git config --global alias.co checkout  // co = checkout

$git config --global alias.br branch  // br = branch

$git config --global alias.ci commit  // ci = commit

Git 版本控制 在 WIN 下的一些使用方法的更多相关文章

  1. Git版本控制与工作流

    基本概念 Git是什么? Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更 ...

  2. Git版本控制与工作流详解

    这篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手: 专为设计师而写的GitHub快速入门教程 git – 简明指 ...

  3. win下 git gui 使用教程

    现在很多都有git来托管项目或者来查找资料,但是看起来操作不是很方便,现在由于win下可以直接使用git gui,让使用git变得方便,当然这只是针对日常简单的使用,如果想详细的使用,可以去参考廖学峰 ...

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

    本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...

  5. WIN下Git GUI 教程

    现在很多都有git来托管项目或者来查找资料,但是看起来操作不是很方便,现在由于win下可以直接使用git gui,让使用git变得方便,当然这只是针对日常简单的使用,如果想详细的使用,可以去参考廖学峰 ...

  6. 【GitHub Desktop】MacOS和Win下配置及简单的使用

    一. GitHub介绍 1.GitHub 是为开发者提供 Git 仓库的托管服务.这是一个让开发者与朋友.同事.同学及陌生人共享代码的完美场所. 总结一下,GitHub 最大的特征是"面向人 ...

  7. Git版本控制使用介绍

    Git是什么? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git与SVN的最主要的区别? Git是分布式的,SVN不是 Git没有一个全局的版本号,而SVN有 ...

  8. Qt Creator 搭配Git 版本控制

    再次介绍一下Git的使用,这次是在Coding.net上部署项目的.这个是写给大作业合作的小伙伴们(我和我的A奶朋友们和某A的男朋友)看的. 安装Git 首先安装Git(msysGit) 下载地址 h ...

  9. Win下必备利器之Cmder

    诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...

随机推荐

  1. Roman to Integer -- LeetCode 13

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  2. 字体Unicode编码

    客专家福利     有奖试读&征文——我们在互联网上奋斗的故事      10月推荐文章汇总      加入“技术热心人”,赢丰厚奖品 html-中文字体在CSS中的显示(Unicode编码) ...

  3. Python 基礎 - 認識模塊

    什麼是模塊?簡單說就是別人寫好了一堆功能,封裝在一起. 模塊有分二種,一個是之前有提到的 標準庫,就是不需要透過額外的安裝就有的模塊 ,另一個叫 第三方庫,需要另外安裝才能使用的模塊 #!/usr/b ...

  4. ibatis批量操作补充

    ibatis批量操作  这文章的补充吧. review代码的时候发现一个页面应用排序设置功能,原先代码中,进行了循环update实现.虽然应用较少,不过无谓浪费数据库链接实在不是一个好的想法. 所以, ...

  5. linux dns 连外网

    以下设置对所用的Linux系统如Redhat/Ubuntu/Debian/CentOS等都有效,但您必须是管理员root或者具有管理员权限 vim /etc/resolv.conf 在其中加入: na ...

  6. Directory的GetFiles方法

    想实现一个功能 :比如多个业务审批流程公用一个审批表的时候,有一个提示审批信息的页面 ,点击该页面不同的业务审批流程记录的时候,跳转到不同业务流程的详细显示界面 额 这样说 貌似以后我自己也看不明白 ...

  7. linux php redis扩展的安装和redis服务的安装

    一.php redis扩展的安装 wget http://pecl.php.net/get/redis-2.2.7.tgztar zvxf redis-2.2.7.tgzcd redis-2.2.7/ ...

  8. 黑马程序员——JAVA基础之GUI

    -----Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- GUI(图形用户界面)  GUI •  Graphical User Interface(图形用 ...

  9. Spring源码学习之:ClassLoader学习(2)

    转载:http://longdick.iteye.com/blog/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个 ...

  10. 使用APC缓存PHP opcode

    1.  关于版本 我的php版本是5.3.10  最开始使用 APC-3.1.8  编译成功,但是 php -m 得不到扩展 , 换成 APC-3.1.9  后解决. 2.  关于配置 apc.cac ...