- 功能(分布式)
1.协同修改,多人并行的修改服务器端的同一个文件
2.数据备份,不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
3.版本管理,不保存重复数据。
4.权限控制
5.历史记录
6.分支管理,允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。 - 本地库初始化
git init 本地库初始化,创建.git目录
git add
.git目录中存放的是本地库相关的子目录和文件,不要删除,不要胡乱修改
- 设置签名区分不同开发人员的身份,就近原则,项目级别优先于系统用户级别!两者必须设置一个。
用户名:
Email地址:
项目级别/仓库级别(仅在当前本地库范围内有效) :
系统用户级别(登录当前操作系统的用户范围):
git config user.name +
git config user.email +
git config --global user.name +
git config --global user.email +
-
git status状态查看,查看工作区、暂存区
-
git add添加,将工作区的修改、新建添加到暂存区
-
git commit提交操作,将暂存区的内容提交到本地库
-
git log查看历史记录,完整形式。对屏显示控制方式:空格向下翻页、b向上翻页、q退出。
-
git log --pretty=oneline 一行显示,只显示过去的。
-
git log --oneline 缩短了哈希值
-
git reflog 显示到某个版本指针需要移动的步数 HEAD ->为指针,全部显示。
-
git reset --hard + 哈希值
版本前进后退
-
^符号 git reset --hard HEAD^只能后退,退几步就需要几个异或符号。
-
~符号 git reset --hard HEAD~3,退几步数字就为多少。
-
–soft/–mixed/–hard
soft仅在本地库移动指针
mixed在本地库移动指针,重置暂存区。
hard在本地库移动指针,重置暂存区、重置工作区。 -
删除文件找回(文件存在时的状态提交到了本地库),就是版本的回退。删除操作提交到本地库删除恢复:
git reset --hard [指针记录]
、删除操作未提交到本地库git reset --hard HEAD
-
比较文件差异
git diff +文件 //工作区的文件和暂存区比较
git diff [本地库中历史版本] +文件名 //将工作区的文件和本地库历史记录比较。不带文件名,比较多个文件
分支操作
- 创建分支
git branch +[分支名]
- 查看分支
git branch -v
- 切换分支
git checkout [分支名]
- 合并分支
切换到接受修改的分支上、执行
git checkout +需合并分支名
git merge +修改后的分支名
- 解决冲突
冲突的表现为特殊符号包围的文件,手动解决冲突,删除特殊符号,修改后保存退出。然后执行:
git add [文件名]
git commit -m "[日志信息]"
- 克隆
完整的把远程库下载到本地,创建origin远程地址别名,初始化本地库。
git clone git https://github.com/zhangxuhui1992/GitTest.git