当前位置:  建站>运营/SEO
本页文章导读:
    ▪Git 使用及进阶实战       一、Git 简介        Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开.........
    ▪通过缓存中的复制延迟标记实现对PHP/MySQL的读/写的分离式控制      我一直在想,在我们的中国及海外客户不断快速成长的情况下,如何能够更好地扩展他们的网站,却保持其原有网站内容及结构仍旧简单可用。 一个扩展方法便是,采用数据库副机来实现读.........
    ▪windows程序员进阶系列:《软件调试》之五windows操作系统概要                          windows程序员进阶系列:《软件调试》之五:Windows操作系统概要       操作系统.........

[1]Git 使用及进阶实战
    来源: 互联网  发布时间: 2013-10-26

一、Git 简介        Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Linus 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多 Freedesktop.org 的项目也迁移到了 Git 上。

Windows下的Git请看这里:http://www.oschina.net/p/msysgit

       现在很多IT公司可能用的都是CVS,那么Git与CVS的区别在哪?git和svn最大的差异在于git是分布式的管理方式而svn是集中式的管理方式。

Git 与CVS 相比有如下优点:

          支持离线工作;本地提交可以稍后提交到服务器上。
          Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
          Git 中的每个工作树都包含一个具有完整项目历史的仓库。
          没有哪一个 Git 仓库会天生比其他仓库更重要。
二、Git 基本概念、命令及其使用 2.1 Git 基本概念

1) Working Directory(工作目录)
Git的工作目录是保存当前正在工作的文件所在的目录,和working tree是相同的意思。在这个目录中的文件可能会在切换branch时被GIT删除或者替换。这个目录是个临时目录,临时存储你从GIT库中取出的文件,这些文件一直会被保存,直到下次提交。

2) GIT Directory(GIT库目录)
项目的所有历史提交都被保存在了GIT库目录中,只要你不作回滚操作,它应该不会丢失。

3) GIT Index(Git索引)
Git index 可以看作是工作目录和Git库目录之间的暂存区,和staging area是相同的意思。可以使用Git index构建一组你准备一起提交的改变。Git Index和Git Staging area是同一个意思,都是指已经被add的但尚未commit的那些内容所在的区域。最简单的查看目前什么内容在index中的方法是使用git status命令。

    命令中”Changes to be committed“中所列的内容是在Index中的内容,commit之后进入Git Directory。
    命令中“Changed but not updated”中所列的内容是在Working Directory中的内容,add之后将进入Index。
    命令中“Untracked files”中所列的内容是尚未被Git跟踪的内容,add之后进入Index。

哪些操作能够改变git index中的内容?
A). git add <path>...会将working directory中的内容添加进入git index。
B). git reset HEAD <path>...会将git index中path内容删除,重新放回working directory中。


2.2 Git 命令及其使用

git init                                     创建一个数据库。  
git clone                                 复制一个数据到指定文件夹  
git add 和 git commit              把想提交的文件add上,然后commit这些文件到本地数据库。  
git pull                                    从服务器下载数据库,并跟自己的数据库合并。 
git fetch                                  从服务器下载数据库,并放到新分支,不跟自己的数据库合并。  
git whatchanged                    查看两个分支的变化。  
git branch                              创建分支,查看分支,删除分支  
git checkout                           切换分支  
git merge                               合并分支,把目标分支合并到当前分支  
git config                                配置相关信息,例如email和name  
git log                                     查看版本历史           
git show                                 查看版本号对应版本的历史。如果参数是HEAD查看最新版本。  
git tag                                    标定版本号。  
git reset                                 恢复到之前的版本 
       ---- mixed 是 git-reset 的默认选项,它的作用是重置索引内容,将其定位到指定的项目版本,而不改变你的工作树中的所有内容,只是提示你有哪些文件还未更新。 
       ---- soft 选项既不触动索引的位置,也不改变工作树中的任何内容。该选项会保留你在工作树中的所有更新并使之处于待提交状态。相当于再--mixed基础上加上git add . --hard 把整个目录还原到一
个版本,包括所有文件。  
git push                                 向其他数据库推送自己的数据库。  
git status                               显示当前的状态。  
git mv                                    重命名文件或者文件夹。  
git rm                                     删除文件或者文件夹。  
git help                                  查看帮助,还有几个无关紧要的命令,请自己查看帮助。 

此处只介绍命令,具体高级应用,请看第四节

三、Git 仓库实战 3.1 服务器端 Git 配置

1) 服务器端mkdir 一个文件夹,然后cd 进入该文件夹。

zyl@project ~ $ mkdir  study.git
zyl@project ~ $ cd study.git/
zyl@project ~/study.git $


2) 使用 git init 创建git 仓库,ls后,目录下有 .git 即可

zyl@project ~/study.git $ git init
Initialized empty Git repository in /home/zyl/study.git/.git/
zyl@project ~/study.git $ ls
zyl@project ~/study.git $ ls -a
.  ..  .git
zyl@project ~/study.git $ 

3) 本地创建一个文件,使用git add 以及 git commit 

zyl@project ~/study.git $ touch first
zyl@project ~/study.git $ ls
first
zyl@project ~/study.git $ git add first 
zyl@project ~/study.git $ git commit -m "my first push"
[master (root-commit) 9315d31] my first push
 Committer: zyl <zyl@project.lzu.edu.cn>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurat      
    
[2]通过缓存中的复制延迟标记实现对PHP/MySQL的读/写的分离式控制
    来源: 互联网  发布时间: 2013-10-26

我一直在想,在我们的中国及海外客户不断快速成长的情况下,如何能够更好地扩展他们的网站,却保持其原有网站内容及结构仍旧简单可用。

一个扩展方法便是,采用数据库副机来实现读操作,读操作在很多网站上表现为80%以上的SQL查询,但是对于游戏类网站而言,读操作的SQL查询占比不尽相同。标准的方法就是,实行读/写分离,即数据库主机实现写操作,而副机实现读操作。

这样一切工作就会很顺利,但是,当许多因素,尤其是有大量的MySQL查询出现的时候,副机会产生延迟现象,而且尤其是在游戏类、数据采集类及统计类网站中,当有大量的写操作时,情况会变的更糟糕,这样读操作会延迟数秒,甚至更长,导致用户无法正常操作、站点甚至游戏无法正常运行。

但是,若仅允许读操作在主机上实现的话,又会影响到系统扩展,所以,一些站点对读操作进行区分,重要的读操作在主机上实现,次要的在副机上实现,但问题是,很难区分出哪些是“不重要的”读操作,在游戏中区分出不重要的读操作更加困难。

若某些副机出问题的话,情况会变得更复杂,当只有几台服务器承担大量的查询负荷、复杂工作、或数据分析工作时,会使副机延迟现象加重。副机1工作正常,但是突然副机2连续一个小时滞后1分钟,然后,副机3出现代码问题,因为有人在该机执行了写操作导致复制中止,需即刻修复。

那么,如何才能够最好地处理该问题呢?

一个好的主意,就是进行动态的读/写分离,运用某个系统来监控系统的复制延迟现象,理想的情况是,在缓存中设置一些标记(旗帜),用以显示副机的真实状态并控制查询去向。基本的处理方式就是,设置一些桶(斗),用于显示延迟在1秒内、10秒内、1分钟内甚至更多的时间内的副机。

然后,带有重要读操作的代码可以检查缓存页面开始处,作出明智决定,发出读操作,先是发到延迟较短的副机,继而是延迟稍长的副机,最后是发到主机。

同其它动态控制系统一样,当负荷很重,事务/请求/答复很频繁时,系统便会失控,(更不必说有振动及其它问题产生)。最好的方式就是,从简单开始,实行有限控制,可运用卸载(甩负荷)技术,如时间延迟很长或主机读数量很大时,禁止占时较长的大型的读查询。

尽管系统不尽完善,但是能自动处理许多问题,尤其是自从配备了合适的系统监控及管理以后。在负荷高峰期,能够处理单个副机乃至整个系统的延迟问题,确保在特定条件下,能够提供最好的用户体验,并且在系统出问题时,不会带来严重的影响。

 

                                 (Authored by Steve Mushero / ChinaNetCloud CEO & CTO  本博客英文原文请点此查看)

作者:ChinaNetCloud 发表于2013-3-13 18:09:24 原文链接
阅读:0 评论:0 查看评论

    
[3]windows程序员进阶系列:《软件调试》之五windows操作系统概要
    来源: 互联网  发布时间: 2013-10-26

          

          windows程序员进阶系列:《软件调试》之五:Windows操作系统概要

 

 

     操作系统是计算机系统中的基本软件。它负责管理系统中的软硬件资源。通常都包括文件管理、内存管理、进程管理、打印管理、网络管理等基本功能。除此之外,支持调试也是操作系统设计的一项根本任务。

 

     从被调试对象的角度来看,可以把操作系统的调试支持分为以下三个方面:

 

     一:对应用程序的调试。即如何简单高效的调试运行在系统中的应用程序。

     二:对设备驱动程序的调试。

     三:对操作系统自身调试的支持。

 

 

    本文我们会介绍Windows操作系统的架构及核心组件,加深大家对Windows系统的理解。

 

     Windows是个典型的多任务操作系统,它允许有多个进程在系统中同时运行。

     进程是资源分配和保护的基本单位。每个进程都有自己的虚拟地址空间。这保证了每个进程相互隔离互不干扰。

 

 

     除了地址空间之外每个进程还包括:

       

     一:一个全局唯一的进程ID 。

     二:一个可执行映像(可执行文件)。

     三:一个或多个线程。

 

     四:一个位于内核空间中的名为_EPROCESS数据结构。用以记录该进程的关键信息,包括进程创建时间、映像文件名称等。

 

     五:一个位于内核空间的句柄表。用以记录和索引该进程所创建的或打开的内核对象。句柄只是句柄表的索引,操作系统根据句柄表来得到指向内核对象的指针。

 

   六:一个用于描述内存页目录

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
NOSQL iis7站长之家
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3