现简述一下git的安装和使用。
安装:
新用户-->代码clone
有关git于svn区别及其优势不再赘述,现简介其使用方法,因为我的电脑是win7系统,所以需要到官网(https://git-for-windows.github.io/)下载msysgit。(图形界面的话还需安装TortoiseGit)
下载完成,双击安装,一路选择默认设置即可。
安装完成后,找到刚刚安装的git ,其中有一个git Bash,打开它即可使用了。
其中使用的命令和Linux的常用命令一样,比如ls、pwd、cd等。
--------------------------------------------------------------------------------------------
使用:
好了,git已经安装完毕,现在打算在D盘software/repository/git/目录下创建一个git仓库,名字是mygitresp
使用命令git init --bare <仓库名>
然后在d/software/respository/git目录下就看到了刚刚创建的仓库。
目录简单说明:
- hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他git托管系统会经常用到hook script
- info:包含仓库的一些信息
- objects:所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名
- refs:这个目录一般包括三个子文件夹,heads、remotes和tags,heads中的文件标识了项目中的各个分支指向的当前commit
- config:这个是GIt仓库的配置文件
- description:仓库的描述信息,主要给gitweb等git托管系统使用
- HEAD:这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent
我们创建一个新的目录d/software/developer/user1来模拟用户1 第一次从仓库check代码操作。
(主要注意的是第一次需要使用clone命令将整个项目down到本地(类似svn的check),不是首次的话就可以直接使用git pull来同步更新代码了。)
命令git clone <仓库地址或目录> /d/software/respository/<仓库名> <用户目录>
命令git clone <仓库地址或目录> /d/software/respository/<仓库名> <用户目录>
新建文件,上传代码:
在user1目录新建文本文件 readme.txt,打开写入一测试语句“user1 create file.”后保存;然后在控制台中键入
命令 git status
告知有未提交的文件 readme.txt需要提交。
现在将其加入到git并做本地提交和共享库提交。
OK, 打开user2目录,你会发现user1提交的readme.txt成功获得,打开后发现user1输入的文本“user1 create file.”显示OK。
---------------------------------------------------------------------------------------------
冲突解决:
现在模拟一种冲突现象,user2在readme.txt文件第二行加入自己的一句话“user2 update"后保存,
然后在控制台按照以上命令提交代码。
然后user1在没有更新代码的前提下在第二行写入了“user1 add info",那么当user1提交到远程时,将报错,说有冲突。
提示自动合并文件失败,此时user1下的readme.txt内容已经被打上冲突标记了:
命令 git mergetool后回车,要求再键入一个冲突解决工具的名称,直接回车则打开默认的vimdiff工具(git当然也可以自己配置其他如beyond compare等工具)
代码修改无误确认冲突解决后,退出编辑器,这时候再执行
命令 git commit -a 填写备注后将最终结果提交到本地git库,然后
命令 git push origin master 来提交到远程库。这里可以直接将目录下自动生成的.orig文件删除了
OK。
----------------------------------------------------------------------------------------------
总结:
git常用命令:
1.创建git资源库
git init --bare 库名称
2.在用户文件夹下把资源clone下来
git clone <仓库地址或目录> /d/software/respository/<仓库名> <用户目录>
3.创建一个文件,纳入到版本控制中。
git add <文件名>
4.提交到本地版本库中。
git commit <文件名>
5 推送到远程共享库中
git push origin master
6.切换目录(新用户),获取最新的文件。
git pull