什么是git
2->速度:多数情况下git 的速度比svn 快
3 ->分支:svn的分支比较笨拙,git可以轻松的建立无限个分支
4 ->旧版本的svn会在每个文件夹下建立一个.svn,git只会有根目录下拥有一个.git
(3)svn与 git的工作流程
》svn
1从服务器获取最新版本的代码
2 写了一天的代码后,下班前把代码上传到服务器
/*
*上传时要先从服务器下载最新代码,因为有可能其它事件对代码进行了修改*然后与自己的代码整合,运行无问题再上传你的代码
*/
3第二天上班前,再次下载代码,有可能别人加班,很晚才提交代码
4接着开始今天的代码开发,重复1234
》git
1从服务器获取代码(clone),我们称为克隆
2修改代码后提交到本地
3当有需要时再提交到服务器
(4)git的命令实战
1)帮助命令
•如果对一个命令不清楚,可以输入'git help'来了解:
2)初始化一个仓库
•仓库用来存放各个版本的文件信息
•建立一个空的文件夹,命名为Weibo,假设用来存放微博项目的
•在终端切换到Weibo 目录下,输入'git init'命令
•在终端输入'defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder' 看到
Weibo 下有个.git的隐藏文件夹,这个文件非常重要,没了就没有版本控制了。
3)提交版本信息
•在Weibo 下添加一个main.m 文件,终端输入'touch main.m'即可,然后添加一行文字•在终端输入下面命令,目的是将main.m 文件,提交到版本库git 中
git commit -m '第一次初始化项目’
•输入上面的命令后,会有如下图的红色提示,这是因为提交前要把.m文件纳入版本控制(暂缓区)
理解git的工作原理,stage就是暂缓区
•输入'git add .'把当前目录下的所有文件纳入版本控制,然后再输入上面的git commit 命令,这个我们就看到版本提交成功了,如图
所有新添加的文件都要添加纳入到版本控制后才能提交
5)查看文件的状态
•在main.m 文件中再添加一行文字
•输入'git status',我们会看到一个红色的文件,这代表这个文件是被修改过的
•修改过的文件要提交前,也要把修改的文件纳入版本控制后才可以使用commit命令
6)配置git 用户•配置用户名
git config "user.name" zhangsan 用于查看谁修改了文件•配置邮箱
git config "user.email"zhangsan@itcast.cn用于多人开发,邮件通知•查看当前的配置
cat .git/config
•再次修改文件提交后,显示修改的用户将是当前配置的
7)给config,status,commit命令 配置别名
•git config -l 查看配置
•git config alias.cfg config给 cinfig取别名
•git config alias.ststatus 给status 取别名
•git config alias.ct"commit -m"给"commit -m”取别名
8)配置日志格式
•git log//默认日志
•git log --pretty=oneline//显示一行日志
•git config --global alias.lg"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"//最漂亮的日志
9)版本回退
•恢复前一个版本git reset --hard HEAD^•恢复前两个版本git reset --hard HEAD^^
•恢复前 N版本 git reset --hard HEAD~N//N是数字•恢复指定版本(git lg) git reset --hard 版本号•查看指令使用记录git reflog
10)查看文件的不同•修改文件
•输入git diff 文件名11)删除文件
•git rm 文件名总结,不管是添加、修改、删除文件,都要选把文件纳入到版本控制中后,才可以提交,最为安全