git简介
这篇文章(55265335879013c64ac090a2)是从 Teambition 迁移过来的
更新 (20160429):最好的Git 电子书 https://git-scm.com/book/ (在线或下载)
什么是 Git
GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
Git vs SVN
- Git 是分布式的,SVN不是 SVN 必须连接服务器才能提交变更; Git 在本地有完整版本库的 “clone”,允许离线提交变更和管理分支,然后push到远程库
- GIT把内容按元数据方式存储,而SVN是按文件 Git会在本地存储所有东西,包括标签,分支,版本记录 SVN只在本地存储一个工作副本。
- GIT分支和SVN的分支不同 SVN中分支就是版本库中的另外的一个目录; GIT的分支可以从同一个工作目录下快速的在几个分支间切换。
- GIT没有一个全局的版本号,而SVN有 SVN里使用容易阅读的数字版本号,Git使用SHA-1来唯一的标识一个代码快照
- GIT的内容完整性要优于SVN GIT的内容存储使用的是SHA-1哈希算法,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Internet上开放的git仓库
- 国外:gitHub、gitLab …
- 国内:coding、gitcafe …
私有git
- gitLabCE: http://git.jkr3.com
限内部访问,自行注册,注意:确认邮件99%可能会进垃圾邮件
客户端
“建议学习命令方式”,熟悉之后非常快捷,mac或linux中可以使用自带 git 命令,通过
git help获得帮助。windows系统可以选择tortoiseGit,适合原来使用tortoiseSVN的用户,有中文语言包
- http://git-scm.com/downloads
- http://git-scm.com/downloads/guis
- https://code.google.com/p/tortoisegit/
Git的基本流程和使用方法
这里只介绍命令方式,在线试玩: GitTryIt
- 初始化
git init - 查看状态
git status添加文件git add README.md/git add *.js - 提交代码
git commit -m “添加 Readme”{学习: Markdown} - 查看日志
git log - 远程库添加
git remote add origin http://git.jkr3.com/username/demo.git{注意:远程库需要事先在网站上新建好} - 推送到远程库
git push -u origin master - 从远程库拉回
git pull origin master - 检查改变
git diff HEAD - 放弃提交
git reset file.txt - 恢复到最后版本
git checkout – file.txt - 建立分支
git branch fixbug - 切换到分支
git checkout fixbug - 删除文件
git rm bug.txt - 合并
git checkout master,git merge fixbug - 删除分支
git branch -d fixbug - 最后推送到服务器
git push
从SVN迁移到git
实际上svn和git在本地是可以共存的
深入学习
http://gitbook.liuhui998.com/book.pdf
更新 (20160429):最好的Git 电子书 https://git-scm.com/book/ (在线或下载)