赞
踩
在 IT 开发过程中使用版本控制思想管理代码的版本迭代。
集中式版本控制工具: CVS、SVN、VSS……
分布式版本控制工具: Git、Mercurial、Bazaar、Darcs……
哈希算法,Git底层采用SHA-1算法
https://git-scm.com/
大部分操作在本地,无需联网
分支操作流畅
与Linux全面兼容
托管中心任务——维护远程库
局域网——Gitlab服务器
外网——GitHub、码云Gitee
团队内部
第三方开发
git init
注: .git文件是隐藏文件需要ls -lA查看。.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
形式:用户名:XXX Email地址:XXX
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
1.项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name XXX
git config user.email XXX
信息保存位置:./.git/config 文件
2.系统用户级别:登录当前操作系统的用户范围
git config --global user.name XXX
git config --global XXX
信息保存位置:~/.gitconfig 文件
1.就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
2.如果只有系统用户级别的签名,就以系统用户级别的签名为准
3.二者都没有不允许
git status
git add [filename]
将工作区的修改添加到暂存区
git commit -m “commit message” [filename]
将暂存区的内容提交到本地库
git commit -am “commit message” [filename] 可跳过上一步add
git log
空格向下翻页,b向上翻页,q退出
git log --pretty=oneline
git log --oneline
git reflog(常用)
–oneline :查看历史记录的简洁版本
–graph :查看历史中什么时候出现了分支、合并
–reverse :逆向显示所有日志
–author :查找指定用户的提交日志
–since、–before、 --until、–after: 指定帅选日期
–no-merges :选项以隐藏合并提交
本质是指针HEAD的前进后退
基于索引值操作[推荐]
git reset --hard [局部索引值]
使用^符号:只能后退
git reset --hard HEAD^
注:一个^表示后退一步,n 个表示后退 n 步
使用~符号:只能后退
git reset --hard HEAD~n
注:表示后退 n 步
–soft 仅在本地库移动指针
–mixed 在本地库移动指针,并重置暂存区
–hard 在本地库移动指针,重置暂存区和工作区
git reset HEAD [filename]
工作目录中删除:git rm
删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项:git rm -f
从暂存区删除,但在工作目录中保留git rm --cache [filename]
递归删除:git rm -r *
前提:删除前,文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用 HEAD
尚未缓存的改动:git diff [文件名]
查看已缓存的改动: git diff --cached [文件名]
查看已缓存的与未缓存的所有改动:git diff HEAD [文件名]
显示摘要而非整个 diff:git diff --stat
git mv [file] [newfile]
版本控制中,使用多条线同时推进多个任务
提高开发效率;
一个分支失败其他分支不受影响,失败的分支重新开始即可。
git branch (branchname)
注:执行git init 的时候,默认情况下会创建master分支。
git branch -d (branchname)
git branch -v
git checkout (branchname)
注:git checkout -b (branchname) 命令来创建新分支并立即切换到该分支
git merge
第一步:切换到接受修改的分支(被合并,增加新内容)上 git checkout [被合并分支名]
第二步:执行 merge 命令 git merge [有新内容分支名]
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m “日志信息”(注意:此时 commit 一定不能带具体文件名)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。