git和svn不同,git可以不用服务器,在本地就可以进行版本的控制,当然也可以用服务器
git的所有版本信息都存.git目录中
使用git当然要先安装git,下面的说明我们都假安装了git
第一次使用要配置git
配置使用git仓库的人员姓名
配置使用git仓库的人员email
在git命令中开启颜色显示
这个命令是指定合并的工具
这些配置的信息可以在用户目录看到
mate ~/.gitconfig 上面就是我们配置的信息
####################################
.gitignore
这个命令可以过滤一些我们不想版本控制的文件
eg:
过滤文件夹设置:
/mtk/ 表示过滤这个文件夹
过滤文件设置
指定过滤某种类型的文件:
*.zip
*.rar
*.via
*.tmp
*.err
指定过滤某个文件:
/mtk/do.c
/mtk/if.h
####################################
git help可以获得git的基本命令
下面先说一基本的命令,然后再说几个使用的情景
[color=red][b]git init[/b][/color]这个是git的初始化命令,就是生成.git目录,生成版本控制仓库
以后所有的版本信息变化都存在这个版本库中
[color=red][b] git add [/b][/color] 将当前工作目录中的更改或都新增的文件加入到版本库中,这是提交前要做的一步
[color=red][b] git add . [/b][/color] 把所有的更改都加加入到版本库中,待提交
[color=red][b] git commit -m “comment” [/b][/color] 提交更改
[color=red][b] git status [/b][/color] 这里是查看文件的变化,查看是否提交到版本库,在一些操作前最好先用这个命 令查看一下
[color=red][b] git rm [/b][/color] 从当前的工作目录和版本库中删除文件
[color=red][b] git rm -rf [/b][/color] 某一个文件 强行删除某一个文件
[color=red][b] git log [/b][/color] 果看操作日志
[color=red][b] git log -10 [/b][/color] 显示10个日志
[color=red][b] git log --stat -summary [/b][/color] 显示每次版本的详细变化
[color=red][b] git show [/b][/color] 版本号 就可以查看某一个版本的详细变化
[color=red][b] git merge [/b][/color] 合并命令,假设把new_branch分支合并到主分支,git merge [color=red][b] new_branch [/b][/color]
[color=red][b] git branch new_branch [/b][/color] 生成新分支new_branch
[color=red][b] git branch [/b][/color] 列出本地分支,正使用的分支前面会有星号
[color=red][b] git branch -a [/b][/color] 列出所有分支
[color=red][b] git diff [/b][/color] 比较版本的区别 和某一个具体的版本比较可以用 git diff 版本号
比较任意分支 git diff 版本号1 版本号2
[color=red][b] git checkout new_branch [/b][/color] 切换到新分支new_branch,这个命令用来切换分支,如果本地有改变,切换的过 程不会删除修改,换到新的分支后再用
[color=red][b] git clone [/b][/color] 从别的地方把版本库信息考到本地方,例:git clone aaa@192.168.0.7:~/work/直到含有.git的目 录
[color=red][b] git pull [/b][/color] 把服务器上的的代码拉到本地并合并,例:git pull aaaa@192.68.0.7:~/work/直到含有.git的目录
[color=red][b] git push [/b][/color] 把代码传到服务器上使用和git pull一样
[color=red][b]git remote show origin[/b][/color] 通过git remote show origin来得到remote中的所有branch列表
[color=red][b][align=center]上面是一些使用的基本命令的介绍,下面说一下git的使用情景[/align][/b][/color]
[color=red][b]一个人的开发:[/b][/color]
一个人开发的时候没有什么合作,可以创建任意分支,并把分支的代码合并到主支
这个时候可以不用什么服务器./git里就保存了所有的信息
首先创建一个文件夹,然后进入文件夹,
执行git init就完成了初始化,并默认在master主支,其实这里也是分支,git上没有主支分支的区分都是分支,只不过我们认为这个为主支
然后在这里创建我们的文件,假为a.txt,这个时候我想做些其它的东西,想在分支上做,于是我可以生成一个分支
git branch new_branch,生成之后我们还在master上,要转到分支上执行
git checkout new_branch 之后就可以在分支上进行相关的操作,比如新建了文件b.txt,并且修改了文件a.txt
这个时候分支上的开发到了一个段落想把分支的东西合并开主支上也就是master上,这个时候,先切换回master
git checkout master
这样就到了主支下面去了,要是想查看现在属于哪个分支,可以用git branch,就会显示所有分支,并且正在使用的分支前面会有一个星号
开始合并,git merge new_branch 这就是把分支的东西合并到主支,这里有两种情况,如果主支没有改动,就会直接自动合并,如果主支也有改动,可能会产生冲突,需要解决完冲突才能提交
上面的是一个人的开发情景
[color=red][b]二个人的开发:[/b][/color]
再介绍一些两个人的开发情景
首先一个人建了一个git库比如我们刚才一个人建的那个库,这个时候,想让另一个朋友过来一起开发,那么另一个朋友可以这样执行 git clone firstperson@192.168.0.5:~/work/直的到含有.git的目录
这样在朋友的机器上就有一个一模一样的版本,朋友可以在这个版本上进行开发,这时的开发就同一个人的开发时的情景一样,最后开发到一阶段,需要合并到我们的工程上
可以执行这样的命令 git pull 朋友的名字@192.168.0.6:~/work/直的到含有.git的目录
这样就把朋友的开发拉到本地方进行合并
[color=red][b]下面介绍一下多人协作开发:[/b][/color]
这时如果还是按照上面的情况有一个人来完成合并,那么可能需要做更多的工作,这个时候就需要建一个服务器,让每一个人都从服务器上拉,每一个跟服务器合并
假设有A,B,C三个和一个server,server上有一上版本库叫做r1
开发开始,首先都各自从服务器上拉下最新的代码
git clone 服务上的git库,其后每一个的开发就是合并上传自忆的代码
这个模式类似于svn,不一样的是每一个人在本地有一个自已的库,并可创建分支,可以建一个分支,在分支上进行开发,然后合并到自己的主支,再合并到服务器上,这样可以避免一些误操作,也可以有效的将本地的主分支保持干净
下面是参考的一些博客:
这三个是说明如何配置gitconfig的,包括配置比较工具等
[url]http://hlee.iteye.com/blog/725184[/url]
[url]http://blog.163.com/xc_win/blog/static/182291218201111281118615/[/url]
[url]http://blog.csdn.net/shuhuai007/article/details/7276195[/url]
常用命令的说明:
[url]http://lib.open-open.com/view/open1335879873983.html[/url]
使用情景介绍
[url]http://blog.haohtml.com/archives/10129[/url]
git的所有版本信息都存.git目录中
使用git当然要先安装git,下面的说明我们都假安装了git
第一次使用要配置git
配置使用git仓库的人员姓名
git config --global user.name "Your Name Comes Here"
配置使用git仓库的人员email
git config --global user.email you@yourdomain.example.com
在git命令中开启颜色显示
git config --global color.ui true
这个命令是指定合并的工具
git config --global merge.tool mate
这些配置的信息可以在用户目录看到
mate ~/.gitconfig 上面就是我们配置的信息
####################################
.gitignore
这个命令可以过滤一些我们不想版本控制的文件
eg:
过滤文件夹设置:
/mtk/ 表示过滤这个文件夹
过滤文件设置
指定过滤某种类型的文件:
*.zip
*.rar
*.via
*.tmp
*.err
指定过滤某个文件:
/mtk/do.c
/mtk/if.h
####################################
git help可以获得git的基本命令
下面先说一基本的命令,然后再说几个使用的情景
[color=red][b]git init[/b][/color]这个是git的初始化命令,就是生成.git目录,生成版本控制仓库
以后所有的版本信息变化都存在这个版本库中
[color=red][b] git add [/b][/color] 将当前工作目录中的更改或都新增的文件加入到版本库中,这是提交前要做的一步
[color=red][b] git add . [/b][/color] 把所有的更改都加加入到版本库中,待提交
[color=red][b] git commit -m “comment” [/b][/color] 提交更改
[color=red][b] git status [/b][/color] 这里是查看文件的变化,查看是否提交到版本库,在一些操作前最好先用这个命 令查看一下
[color=red][b] git rm [/b][/color] 从当前的工作目录和版本库中删除文件
[color=red][b] git rm -rf [/b][/color] 某一个文件 强行删除某一个文件
[color=red][b] git log [/b][/color] 果看操作日志
[color=red][b] git log -10 [/b][/color] 显示10个日志
[color=red][b] git log --stat -summary [/b][/color] 显示每次版本的详细变化
[color=red][b] git show [/b][/color] 版本号 就可以查看某一个版本的详细变化
[color=red][b] git merge [/b][/color] 合并命令,假设把new_branch分支合并到主分支,git merge [color=red][b] new_branch [/b][/color]
[color=red][b] git branch new_branch [/b][/color] 生成新分支new_branch
[color=red][b] git branch [/b][/color] 列出本地分支,正使用的分支前面会有星号
[color=red][b] git branch -a [/b][/color] 列出所有分支
[color=red][b] git diff [/b][/color] 比较版本的区别 和某一个具体的版本比较可以用 git diff 版本号
比较任意分支 git diff 版本号1 版本号2
[color=red][b] git checkout new_branch [/b][/color] 切换到新分支new_branch,这个命令用来切换分支,如果本地有改变,切换的过 程不会删除修改,换到新的分支后再用
[color=red][b] git clone [/b][/color] 从别的地方把版本库信息考到本地方,例:git clone aaa@192.168.0.7:~/work/直到含有.git的目 录
[color=red][b] git pull [/b][/color] 把服务器上的的代码拉到本地并合并,例:git pull aaaa@192.68.0.7:~/work/直到含有.git的目录
[color=red][b] git push [/b][/color] 把代码传到服务器上使用和git pull一样
[color=red][b]git remote show origin[/b][/color] 通过git remote show origin来得到remote中的所有branch列表
[color=red][b][align=center]上面是一些使用的基本命令的介绍,下面说一下git的使用情景[/align][/b][/color]
[color=red][b]一个人的开发:[/b][/color]
一个人开发的时候没有什么合作,可以创建任意分支,并把分支的代码合并到主支
这个时候可以不用什么服务器./git里就保存了所有的信息
首先创建一个文件夹,然后进入文件夹,
执行git init就完成了初始化,并默认在master主支,其实这里也是分支,git上没有主支分支的区分都是分支,只不过我们认为这个为主支
然后在这里创建我们的文件,假为a.txt,这个时候我想做些其它的东西,想在分支上做,于是我可以生成一个分支
git branch new_branch,生成之后我们还在master上,要转到分支上执行
git checkout new_branch 之后就可以在分支上进行相关的操作,比如新建了文件b.txt,并且修改了文件a.txt
这个时候分支上的开发到了一个段落想把分支的东西合并开主支上也就是master上,这个时候,先切换回master
git checkout master
这样就到了主支下面去了,要是想查看现在属于哪个分支,可以用git branch,就会显示所有分支,并且正在使用的分支前面会有一个星号
开始合并,git merge new_branch 这就是把分支的东西合并到主支,这里有两种情况,如果主支没有改动,就会直接自动合并,如果主支也有改动,可能会产生冲突,需要解决完冲突才能提交
上面的是一个人的开发情景
[color=red][b]二个人的开发:[/b][/color]
再介绍一些两个人的开发情景
首先一个人建了一个git库比如我们刚才一个人建的那个库,这个时候,想让另一个朋友过来一起开发,那么另一个朋友可以这样执行 git clone firstperson@192.168.0.5:~/work/直的到含有.git的目录
这样在朋友的机器上就有一个一模一样的版本,朋友可以在这个版本上进行开发,这时的开发就同一个人的开发时的情景一样,最后开发到一阶段,需要合并到我们的工程上
可以执行这样的命令 git pull 朋友的名字@192.168.0.6:~/work/直的到含有.git的目录
这样就把朋友的开发拉到本地方进行合并
[color=red][b]下面介绍一下多人协作开发:[/b][/color]
这时如果还是按照上面的情况有一个人来完成合并,那么可能需要做更多的工作,这个时候就需要建一个服务器,让每一个人都从服务器上拉,每一个跟服务器合并
假设有A,B,C三个和一个server,server上有一上版本库叫做r1
开发开始,首先都各自从服务器上拉下最新的代码
git clone 服务上的git库,其后每一个的开发就是合并上传自忆的代码
这个模式类似于svn,不一样的是每一个人在本地有一个自已的库,并可创建分支,可以建一个分支,在分支上进行开发,然后合并到自己的主支,再合并到服务器上,这样可以避免一些误操作,也可以有效的将本地的主分支保持干净
下面是参考的一些博客:
这三个是说明如何配置gitconfig的,包括配置比较工具等
[url]http://hlee.iteye.com/blog/725184[/url]
[url]http://blog.163.com/xc_win/blog/static/182291218201111281118615/[/url]
[url]http://blog.csdn.net/shuhuai007/article/details/7276195[/url]
常用命令的说明:
[url]http://lib.open-open.com/view/open1335879873983.html[/url]
使用情景介绍
[url]http://blog.haohtml.com/archives/10129[/url]