惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
SecWiki News
SecWiki News
Project Zero
Project Zero
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
A
Arctic Wolf
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
The Hacker News
The Hacker News
T
Tenable Blog
雷峰网
雷峰网
有赞技术团队
有赞技术团队
V
V2EX
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
T
Threatpost
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
SegmentFault 最新的问题
月光博客
月光博客
Spread Privacy
Spread Privacy
S
Secure Thoughts
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
The Last Watchdog
The Last Watchdog
Y
Y Combinator Blog
I
Intezer
博客园 - 【当耐特】
B
Blog RSS Feed
Attack and Defense Labs
Attack and Defense Labs
I
InfoQ
博客园 - 叶小钗
Cyberwarzone
Cyberwarzone
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
H
Help Net Security
C
CERT Recently Published Vulnerability Notes

秋水逸冰

丽萨主机:双ISP家宽住宅IP VPS/CN2 GIA精品网/G口大带宽 | 秋水逸冰 Linux Kernel 6.18.x 编译版 | 秋水逸冰 思考未来人与 AI 的关系 | 秋水逸冰 3X-UI 面板安装和使用教程 | 秋水逸冰 Xray-UI 面板安装和使用教程 | 秋水逸冰 WCMP (Windows + Caddy + MariaDB + PHP) Nginx for Windows | 秋水逸冰 Aria2 for Windows | 秋水逸冰 Curl for Windows | 秋水逸冰 Wget for Windows | 秋水逸冰 Windows 11 Enterprise LTSC DD 镜像 Windows Server 2025 Datacenter DD 镜像 重新编译 curl 以支持 HTTP3 | 秋水逸冰 tiny10 和 tiny11 23H2 的 Windows DD 镜像 从 Apache httpd 切换到 Caddy2 LCMP (Linux + Caddy + MariaDB + PHP) Windows 11 Pro for Workstations 22H2 DD 镜像 Shadowsocks 编译版 by Teddysun | 秋水逸冰 适用于 UEFI 启动的多个 Windows 系统 DD 镜像 Linux Kernel 5.15.x 编译版 | 秋水逸冰 制作适用于 WSL 的任意 Linux 镜像 Windows 11 Pro for Workstations 21H2 DD 镜像 Windows 10 Enterprise LTSC DD 镜像 Linux Kernel 5.14.x 编译版 | 秋水逸冰 Linux Kernel 5.13.x 编译版 | 秋水逸冰 Windows Server 2022 Datacenter DD 镜像 在 Windows 10 上安装 Rocky Linux 系统 Linux Kernel 5.12.x 编译版 | 秋水逸冰 Linux Kernel 5.11.x 编译版 | 秋水逸冰 在 Windows 10 上安装 CentOS 系统 Linux Kernel 5.10.x 编译版 | 秋水逸冰 Caddy v1.0.5 编译版 | 秋水逸冰 在 Windows 系统里轻松创建自定义服务 | 秋水逸冰 如何在 CentOS 8 下安装 Docker Engine 在 CentOS 7 下构建 Android 编译环境 使用 Docker Buildx 构建多种系统架构镜像 | 秋水逸冰 使用 Docker 快速部署 Shadowsocks-libev + v2ray-plugin 如何使用 FirewallD 开启 IP 白名单 WireGuard 一键安装脚本 | 秋水逸冰 域名那些事儿5 | 秋水逸冰 告别 | 秋水逸冰 Windows Server 2019/2016/2012R2 Datacenter DD 镜像 如何制作 Windows Server 2019 的 DD 镜像 介绍几款 Docker 镜像 | 秋水逸冰 如何启用 Shadowsocks 的多端口 | 秋水逸冰 一键安装KMS服务脚本 | 秋水逸冰 关于免费SSL证书的那些事儿 | 秋水逸冰 使用定时任务cron监视Shadowsocks进程 | 秋水逸冰 LAMP新增Letsencrypt支持 | 秋水逸冰 从编译到二进制安装 | 秋水逸冰 PHP模块一览及简要说明 | 秋水逸冰 使用 GPG 加密 Github Commits 一键安装最新内核并开启 BBR 脚本 | 秋水逸冰 Shadowsocks 一键安装脚本(四合一) | 秋水逸冰 FTP 上传一键脚本ftp_upload.sh | 秋水逸冰 限制 IP 访问 WordPress 登录画面 CentOS 6.10安装Python2.7.18 | 秋水逸冰 一键备份脚本backup.sh | 秋水逸冰 域名那些事儿4 | 秋水逸冰 域名那些事儿3 | 秋水逸冰 LAMP下SSL设置教程 | 秋水逸冰 L2TP/IPSec一键安装脚本 | 秋水逸冰 域名那些事儿2 | 秋水逸冰 一键测试脚本bench.sh | 秋水逸冰 解决pip安装M2Crypto失败的问题 | 秋水逸冰 在CentOS下编译安装GCC | 秋水逸冰 域名那些事儿 | 秋水逸冰 MySQL性能优化的简单说明 | 秋水逸冰 Zend Guard Loader简介及下载链接一览 | 秋水逸冰 Windows和Linux下Whois命令的安装和使用 | 秋水逸冰 LAMP一键安装脚本使用说明 | 秋水逸冰 Windows系统下安装dig命令 | 秋水逸冰 如何在Debian下安装Webmin | 秋水逸冰 Apache下部署SSL教程 | 秋水逸冰 Shadowsocks-go一键安装脚本 | 秋水逸冰 少壮不努力,一生在内地 | 秋水逸冰 Google日语输入法离线安装包 | 秋水逸冰 PHP加速缓存Zend Opcache | 秋水逸冰 CentOS下安装aria2教程 | 秋水逸冰 Linux多线程下载工具Axel | 秋水逸冰 phpMyAdmin导入文件错误的解决办法 | 秋水逸冰 PHP编译安装常见错误总结 | 秋水逸冰 phpMyAdmin从4.1.x升级到4.2.x注意事项 | 秋水逸冰 Debian下shadowsocks-libev一键安装脚本 | 秋水逸冰 CentOS下shadowsocks-libev一键安装脚本 | 秋水逸冰 又一家VPS:Vultr.com | 秋水逸冰 Linux系统中常用操作命令 | 秋水逸冰 Eclipse下搭建Python开发环境 | 秋水逸冰 Shadowsocks Python版一键安装脚本 | 秋水逸冰 CentOS 6下编译PHP出错 | 秋水逸冰 Apache如何开启Gzip压缩 | 秋水逸冰 Linux Shell逻辑运算符和表达式详解 | 秋水逸冰 吐槽腾讯:PC用户也是用户 | 秋水逸冰 Webmin:如何安装Perl模块DBI和DBD-MySQL | 秋水逸冰 CentOS下如何手动添加Swap | 秋水逸冰 安装PHP的PDO MySQL扩展 | 秋水逸冰 Javascript获取URL参数值 | 秋水逸冰 总结我所用过的VPS商家 | 秋水逸冰 Apache索引(目录浏览)的那些事儿 | 秋水逸冰 如何新建最低权限的SSH帐号 | 秋水逸冰
Git初学者:msysgit和tortoisegit | 秋水逸冰
秋水逸冰 · 2014-02-02 · via 秋水逸冰

Git现在如日中天,要是不会一点都不好意思自称为攻城师。用过CVS、SVN后再用Git,一时半会儿还有点不太适应,就像习惯了Android界面一时适应不了iOS一样。那么,Git与SVN的区别到底是什么?
Git与大部分版本控制系统的差别是很大的,比如Subversion、CVS、Perforce、Mercurial 等等,使用的是“增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。Git正好与之相反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。这会是在使用Git时的一个很重要的理念。

以SVN为例,源代码管理是以服务器为中心的,每个开发者都连在服务器上,本地修改,然后commit到svn服务器上。这种做法看似完美,但是有缺陷:
1、开发者不能本地跟踪代码版本,因为所有的信息都是在服务器上。你把本地的代码改了很多,但是又不能提交。通常,本地只能缓存一个版本。对于小项目无所谓,但是项目一复杂,人员多就麻烦了。通常你本地的代码都全是红色的。自己都不知道今天修改了什么, 有哪些修改是真正应该提交给svn的。
2、因为第一点,一旦离开服务器你将无法正常工作。因为本地不能跟踪代码版本。  你的几乎任何操作都必须连上服务器。比如,show log,blame,show history等等。
3、对于大型项目,svn几乎不可用。比如linux内核项目,开发者何止几万?都直接提交给svn服务器的话还不乱套了。
4、对于个人的项目而言(或者对于小公司的项目),不用版本控制当然不行,但是为了用版本控制而专门架设svn服务器不但麻烦而且浪费。
当然,以上问题Linux内核的作者Linus Benedict Torvalds也遇到了这些问题,于是他决定再一次改变世界, 重写一个可以本地使用的svn。

Git没有服务器,装上Git软件之后,你就可以指定本地的文件夹进行版本控制了。你可拔掉网线,然后在本地修改,commit,revert(rollback), branch, restore, show log, blame, history 等等,全部你之前在svn里面可以用的操作。
如果每个人都自顾自的开发,那么怎么协作呢?通常Git比SVN会多出两个操作,就是 pull 和 push。
开发者之间通过 pull 和 push 操作, 把别人的修改拉过来,或者把自己的修改推给别人。

Git官方网站的口号就是everything is local(一切皆本地),由此可见Git面世之初的定位便是如此。当然大部分程序员都是在Windows下工作,下载Git的windows客户端 msysgit 安装即可,具体安装过程省略(自动识别windows 32 或64位)。
高手习惯于用命令行,但初学者一般还是要GUI客户端的,推荐TortoiseGit,类似于TortoiseSVN,基本操作类似,容易上手。https://code.google.com/p/tortoisegit/
依次安装msysgit和TortoiseGit后,就可以像操作SVN一样创建Git版本库了。
在任意目录下右击,出现TortoiseGit的右键菜单,点击Git Clone,出现如下图界面:

URL填入在线托管的Git地址,Directory便是本地文件夹,其他选择默认即可。
下面列举几个常用的免费Git托管网站:
1、 Github.com https://github.com/ 最著名的免费Git托管网站,曾一度被我天朝大墙屏蔽,缺点是免费的不支持私有项目。
2、 京东代码库 https://code.jd.com/ 京东商城的免费Git托管网站,提供一键搬迁功能,对所有公有、私有项目免费提供容量为1G的存储空间。
3、 开源中国代码托管 https://git.oschina.net/ 支持公有项目和私有项目,成员无限,项目1000个。
4、 CSDN Code https://code.csdn.net/ 支持公有项目和私有项目,提供512MB 存储空间。
5、 Bitbucket https://bitbucket.org/ 也是国外比较著名的Git托管网站,免费用户支持公有和私有项目。

将远程版本库克隆到本地后,就可以像操作SVN一样管理代码了,Diff,Revert,Add,Commit等等。与SVN不同之处是多了3个操作:Pull,Fetch,Push。
右键菜单Git Sync如下图:

利用TortoiseGit快速开始使用Git,可以帮助我们减少学习时间,基本上可以替代命令行实现Git的所有功能。

最后介绍一下两个概念:
1、 Git目录。是为你的项目存储所有历史和元信息的目录——包括所有的对象(commits,trees,blobs,tags),这些对象指向不同的分支。每一个项目只能有一个“Git目录”(这和SVN,CVS的每个子目录中都有此类目录相反),这个叫“.git”的目录在你项目的根目录下,默认是隐藏属性(这是默认设置,但并不是必须的)。
2、 工作目录。Git的“工作目录”存储着你现在签出(checkout)来用来编辑的文件。当你在项目的不同分支间切换时,工作目录里的文件经常会被替换和删除。所有历史信息都保存在“Git目录”中;工作目录只用来临时保存签出(checkout) 文件的地方,你可以编辑工作目录的文件直到下次提交(commit)为止。

附录:
如何去掉安装msysgit后产生的右键菜单,如Git Init Here,Git GUI,Git Bash等?
如果你和我一样,不喜欢msysgit右键菜单的快捷方式,那么完全有办法去除掉。
运行cmd,定位到msysgit的安装目录。
Windows 32位系统:

cd C:\Program Files\Git\git-cheetah
regsvr32 /u git_shell_ext.dll

Windows 64位系统:

cd C:\Program Files (x86)\Git\git-cheetah
regsvr32 /u git_shell_ext64.dll

学习Git中文资料推荐:
Git Community Book 中文版,下载地址:http://gitbook.liuhui998.com/book.pdf

参考链接:
http://www.cnblogs.com/shuidao/p/3535299.html

转载请注明:秋水逸冰 » Git初学者:msysgit和tortoisegit