赞
踩
协同修改
多人并行不悖的修改服务器端的同一个文件。
数据备份
不仅保存目录和文件的当前状态,还能够保存没一个提交过的历史状态。
版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约储存空间,提高运行效率。这方面SVN采用的是增量式管理的方式,而Git采取了文件系统快照的方式。
权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git独有。
历史记录
查看修改人、修改时间、修改内容、日志信息。
将本地文件恢复到某一个历史状态。
分支管理
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
集中式版本控制工具:CVS、SVN、VSS … …
分布式版本控制工具:Git、Mercurial、Bazaar、Darcs … …
Git官网:https://git-scm.com/
本地库
暂存区
工作区
git init
形式:
用户名:tom
邮箱:abcd@efg.com
作用:区分开发者身份
命令
git config
:项目级别签名
例:
git config user.name tom_pro
git congig user.email abcd@efg.com
信息保存在 ./config
git config --global
:系统级别签名
例:
git config --global user.name tom_glo
git congig --global user.email hijk@lmn.com
信息保存在 ~/.gitconfig
工作区添加到暂存区命令:git add [resources]
查看工作区/暂存区状态:git status
移出暂存区:git rm --cached [resources]
暂存区提交到库:git commit
或者用 git commit -m "tips" [resources]
省略编辑器步骤
命令:git log
简略显示:git log --pretty=oneline
/ git log --oneline
带下标显示:git reflog
命令:git reset --hard [哈希值]
符号^
:git reset --hard HEAD[^^...]
回退^
的个数个版本(例:回退两个版本)
符号~
:git reset --hard HEAD~[n]
指定后退n个版本
--soft
参数:
仅在本地库移动HEAD指针
--mixed
参数:
在本地库移动HEAD指针
重置暂存区
--hard
参数:
在本地库移动HEAD指针
重置暂存区
重置工作区
git reset --hard [指针位置]
命令:git diff [文件名]
比较历史版本文件:git diff [指针位置] [文件名]
(文件名省略时比较全部)
创建分支:git branch [分支名]
查看分支:git branch -v
切换分支:git checkout [分支名]
合并分支:git merge [新内容分支名]
注:要先切换到目标分支上,将新内容分支并过来
解决冲突
两个分支同时修改了某处,需要手动合并
修改后添加至暂存区
提交,解决冲突(commit不用加文件名)
Git底层采用的是SHA-1算法
哈希算法的特点:
集中式版本控制工具(SVN)机制
以文件变更列表的方式存储信息,每一个版本保存的是与前一版本的差异信息,获取某一版本内容可以看做把历史版本的所有信息拼接起来。
Git文件管理机制
Git会把数据制作为一个快照,每次提交更新都会把新数据制作一个快照,并保存快照的索引。如果其余文件没有被修改,Git不会重新存储这些文件,而是在新快照保留一个链接指向之前存储的文件。
Git分支管理机制
分支创建:创建一个新指针指向快照
分支切换:将HEAD指针指向新分支
更新新快照:
切换主分支:
更新主分支快照:
获取HTTP地址
创建远程仓库地址别名
origin表示仓库地址别名
查看状态:git remote -v
推送到远程库:git push [地址/别名] [分支名]
命令:git clone [地址]
新建一个文件夹在该文件夹执行命令,自动初始化本地库,且默认设置改地址别名为origin
命令:git pull [远程库地址别名] [远程库分支名]
pull = fetch(拉取) + merge(合并)
也就是 git fetch [远程库地址别名] [远程分支名]
+ git merge [远程库地址别名/远程分支名]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。