一,
git的简单介绍
git是一个快速可扩充的分布式版本控制系统。
Git的绝大部分操作在本地完成,不用和集中的代码管理服务器交互,本地提交为commit,待完成一部分工作觉得有把握提交到服务器则是push。终于可以随时随地大胆地check in代码了。只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。
Git的分支管理branch管理容易多了,无论是建立新的branch,还是在branch之间切换都一条命令完成,不需要建立多余的目录。
二,
git的个人本地使用及操作
1,
创建Git库
cd 源码目录
git init #初始化 在源码目录内生成一个.git的目录
2,
注册用户信息(网上资料说是必需注册才能使用git工具,局域网内可不注册,直接用主机名,如pengwufeng@ubuntu)
git config user.name XXX 用户名
git config user.email XXX 用户邮箱
git config –list #查看用户信息
3,
向git库中添加或删除文件
git add XX #加单个文件
git add . #加所有
4,
向版本库提交变化
git commit #提交(系统会默认让用户添加提交信息)
git commit –m “XXXX” #直接添加简单提交信息
git status #查看项目状态
git log #查看版本信息
git log –p
#查看版本信息并显示每次修改的diff
git show sdjf974654dd…. #查看指定版本信息
#(show后面为每次提交系统自动生成的一串哈希值)
git show sdji97 #一般只使用版本号的前几个字符即可
5,
撤销与恢复
git reset
git reset --hard #回到原来编辑的地方
#(同样适用于团队对于其他人的修改恢复)
git reset --hard sdv143kvf…... #可回到指定的版本
#(hard后面为每次提交系统自动生成的一串哈希值)
6,
向服务器提交变化
git push #向服务器提交
三,
git的团队开发及操作
说明:这里假定服务器的用户名为git,服务器IP为192.168.20.22,项目名为android2.1,路经为git的home(即根路径)
1,
获取项目
cd 本地工作目录(自定)
git clone 服务器帐户@IP:项目路经
这里具体操作为:
2,
将服务器项目与本地项目合并
cd 本地工作目录
git pull
注:若产生合并冲突需手工修改后再提交合并
3,
将本地项目上传至服务器
cd 本地工作目录
git push
注:上传前需先进行git pull 操作,以避免在服务器上存留合并冲突
4,
合并冲突的说明
假设用户A在文件的开头插入一行,同时用户B在文件末尾插入一行,他们都上传了他们的改动。这这种情况系统会合理的处理:两个人的改动都会生效。
但是如果发生用户A和B对同一行作了不同的改动,若没有人工的参与的话,这个冲突是无法解决的。于是第2个上传修改时就会得到git的提示信息,需手工修改冲突后再做提交。
5,
团队开发的基本流程
-----------个人项目开发-----------
git add 改动的文件
git commit #(提交至本地)
git pull #(将服务器项目与本地项目合并)
git push #(将本地项目上传至服务器)
四,
git的分支管理
git的分支操作是个很有实用价值的操作,个人理解它的使用主要是在本地,git的分支机制能在项目的任何阶段分支出于当前项目一样的分支,据实际效果来说分支与主枝并没有区别,因为其初始分支时内容完全一样。我认为其在本地操作是因为项目成员在开发任何时间都可以分支出一个branch,用以任何操作(如各种可能破坏代码的实验性操作)如在分支上取得一定收获同样可将分支与主枝合并,若分支被破坏同样可回到主支上的正确代码,也就是实现了本地代码的不同版本管理,在本地同样可以通过撤销与恢复的操作回到之前版本。
git分支操作在本地建立分支,然后与本地主枝合并,最终提交到服务器。有效的避免了因个人操作不当向服务器提交过多脏数据,避免频繁git clone服务器来更新本地库。
分支操作指令:
1,
建立分支
git branch AAA #建立分支AAA
2,分支切换
git checkout AAA #从当前分支切换到AAA分支
3,
将分支与主枝master合并
git checkout master #(首先切换回主枝)
git merge AAA #(将分支AAA与主枝合并)
4,
当前分支查看
git branch #默认有master(也称为主枝)
5,
删除分支
git branch –d AAA #删除分支AAA
备注:上面只是一些基本的操作命令,更多的命令可通过帮助文档查询。
帮助文档的使用:
man git-<需查询的指令> #(git后面有“-”)
如commit的查询为 man git-commit