商城网站设计公司怎么样,好享购物官方网站购物,wordpress登录返回,ui网页设计方法参考文章链接#xff1a; Git教程#xff08;超详细#xff0c;一文秒懂#xff09;
RUNOOB Git教程
Git学习记录
1Git概述
1.1版本控制软件功能
版本管理#xff1a;更新或回退到历史上任何版本#xff0c;数据备份共享代码#xff1a;团队间共享代码#xff0c;…参考文章链接 Git教程超详细一文秒懂
RUNOOB Git教程
Git学习记录
1Git概述
1.1版本控制软件功能
版本管理更新或回退到历史上任何版本数据备份共享代码团队间共享代码合作开发
1.2svn与git 上图来自RUNOOB Git教程
svn它集中式的版本控制不能离线工作。git分布式的版本控制它版本放在用户自己的电脑。svn不支持离线工作版本全部都放在是中央服务器。如果中央服务器挂了。那么版本全部丢失。git支持离线工作。版本都放用户自己电脑上完成。---- 分布式的版本控制。svn是项目对仓库git是仓库对仓库。
1.3Git工作机制
上图来自RUNOOB Git教程
图中左侧为工作区右侧为版本库。在版本库中标记为 “index” 的区域是暂存区stage/index标记为 “master” 的是 master 分支所代表的目录树HEAD是指向当前分支的一个游标别名输入命令时可相互替换objects 标识的区域为 Git 的对象库实际位于 “.git/objects” 目录下里面包含了创建的各种对象及内容
在工作区写代码**工作区**就是你在电脑里能看到的目录。git add * 临时存储在暂存区**暂存区**英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件.git/index中所以我们把暂存区有时也叫作索引index暂存区的目录树被更新同时工作区修改或新增的文件内容被写入到对象库中的一个新的对象中而该对象的ID被记录在暂存区的文件索引中git commit -m “ xxx” 提交在本地库并描述**版本库**工作区有一个隐藏目录 .git这个不算工作区而是 Git 的版本库暂存区的目录树写到版本库对象库中master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树git push 上传到远程仓库 上图来自RUNOOB Git教程
1.4Git和代码托管中心
代码托管中心是基于网络服务其的远程代码仓库简称为远程库
局域网 GitLab自己搭建远程库gogs极易搭建的自助Git服务 互联网 GitHubGitee
1.5Git安装与配置
#安装
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-devapt-get install gitgit --version
# 输出git version 1.8.1.2#配置 gitconfig
# /etc/gitconfig 文件系统中对所有用户都普遍适用的配置。若使用 git config --system 读写的就是这个文件
#~/.gitconfig 文件用户目录下的配置文件只适用于该用户。若使用 git config --global 读写的就是这个文件
#当前项目的 Git 目录中的配置文件也就是工作目录中的 .git/config 文件这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量#下面--global 可以更换为 --system 或不加意义如上
git config --global user.name abc
git config --global user.email abcqq.com#查看已有配置信息
git config --list
#输出user.nameabc user.emailabcqq.com
# 有时候会看到重复的变量名那就说明它们来自不同的配置文件比如 /etc/gitconfig、~/.gitconfig不过最终 Git 实际采用的是最后一个。2Git常见命令
git config --global user.name xxx #设置用户名
git config --global user.email xxx #设置用户邮箱
git init #初始化本地库,生成一个 .git 目录该目录包含了资源的所有元数据
git init 文件夹名 #指定目录作为Git仓库会在该目录下生成.git目录所有Git需要的数据资源都放在该目录#如果当前目录有几个文件想要纳入版本控制需要先用git add命令告诉Git开始对这些文件进行跟踪然后提交
git add *.c
git add README
git commit -m 初始化项目版本git rm #将文件从暂存区和工作区中删除
git mv #移动或重命名工作区文件git status #查看本地库状态
git add xxx #将xxx文件加入到暂存区
git commit -m xxx #提交到本地库并添加日志
git reflog #查看历史记录
git reset --hard 版本号 #版本穿梭
git rm --cached 文件名 #清除暂存区文件
git checkout -- 文件名 #将暂存区中同名文件覆盖到工作区
git checkout 分支名 -- 文件名 #将本地库中同名文件覆盖到暂存区和工作区git restore #恢复或撤销文件的更改2.1git status 查看本地库状态
首次查看可看到分支可看到无内容提交增加文件后再次查看文件显示为红色意味着在工作区git未追踪该文件
2.2git add 上传工作区文件至本地库
git add xxxgit status 会检测到暂存区有新文件
2.3git commit -m “日志信息” 文件名 提交至本地库
git commit -m first commit hello.txt
2.4修改文件后文件未被添加到暂存区需重复上述操作
3历史版本
3.1git reflog 查看提交的版本及日志信息
3.2git log查看完整的提交版本及日志信息
git log [选项] [分支名/提交哈希]
常用的选项包括
-p显示提交的补丁具体更改内容--oneline以简洁的一行格式显示提交信息--graph以图形化方式显示分支和合并历史--decorate显示分支和标签指向的提交--author作者只显示特定作者的提交--since时间只显示指定时间之后的提交--until时间只显示指定时间之前的提交--grep模式只显示包含指定模式的提交消息--no-merges不显示合并提交--stat显示简略统计信息包括修改的文件和行数--abbrev-commit使用短提交哈希值--pretty格式使用自定义的提交信息显示格式
git blame 文件名 以列表形式显示修改记录
3.3版本穿梭
git reset 版本号暂存区的目录树会被重写被定义版本号指向的目录树所替换但工作区不受影响git rm --cached 文件名会直接从暂存区删除文件工作区不作出改变git checkout . 或者 git checkout -- 文件名会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险会清除工作区中未添加到暂存区中的改动git checkout 分支名 .或者git checkout -- 文件名会用定义或指向分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的因为不但会清除工作区中未提交的改动也会清除暂存区中未提交的改动。
4Git分支操作
4.1分支概述及优点
在版本控制过程中同时推进多个任务为每个任务可以创建单独分支意味着可以将工作从开发主线上分离开来开发分支不影响主线运行可理解为副本并行推进多个功能开发提高效率各个分支在开发过程中单个分支开发失败不会影响其他分支失败分支可重新开始
4.2分支操作
git branch 分支名 #创建分支
git branch -v #查看分支
git checkout 分支名 #切换分支
git checkout -b 分支名 #创建新分支并切换
git switch 分支名 #切换分支
git switch -c 新分支名 #创建新分支并切换
git merge 分支名 #把指定的分支合并到当前分支上
git branch -d 分支名 #删除分支4.2.1查看分支
git branch -v
4.2.2创建分支
git branch 分支名
4.2.3切换分支
git checkout 分支名
4.2.4合并分支
git checkout 主分支
git merge 分支名
分支冲突当要合并的两个分支存在对同一文件进行修改git无法确定作哪一修改解决冲突修改master中相同文件的内容不修改合并分支中相同文件的内容 在master分支确定要修改的文件及内容git add 文件名git commit -m “日志” 后不能加文件名否则会报错合并分支的同文件不做改变git merge 合并分支名
4.2.5删除分支
git branch -d 分支名
5远程仓库 上图来自RUNOOB Git教程
5.1在github/gittee上创建远程仓库
5.2远程仓库操作
git remote -v #查看当前所有远程地址别名
git remote add 别名 远程地址 #起别名第一次
git push 别名 分支 #推送本地分支上的内容到远程仓库
git clone 远程地址 #将远程仓库的内容科隆到本地第一次
git pull 远程库地址别名 远程分支名 #将远程仓库对于分支最新内容拉下来后与当前本地分支直接将合并5.2.1克隆仓库到本地
git clone 远程地址执行该命令会默认处于master分支下也会自动将origin设置成该远程仓库的标识符
git clone 远程地址 新名字克隆仓库并在本地修改仓库名
设置提交代码时的用户信息
git config --global user.name abc
git config --global user.email abcqq.com
#如果去掉 --global 参数只对当前仓库有效。5.2.2未工作区增加远程仓库
git remote -v #先查看当前所有远程地址一般会叫origin
git remote add 仓库别名 远程地址 #增加远程仓库
git remote -v #再次查看当前所有远程地址
#会有两个仓库又分别有1个可以推送(push) 一个可以拉取(fetch)#删除仓库
git remote rm 仓库名5.2.3推送本地分支到远程仓库
git push 远程仓库地址别名 分支名推送的最小单位是分支所以一定要指定分支例如git push origin master
5.2.4拉取远程仓库内容
git pull 远程仓库地址别名 分支名例如git pull origin master
6版本控制(查看与更新远程分支)
git fetch 获取远程仓库中最新的提交和分支信息但不会自动合并到当前分支上
例如git fetch origin 从名为origin的远程仓库获取所有分支的最新更改
git diff 比较本地分支和远程分支之间的差异避免潜在冲突例如git diff HEAD origin/分支名HEAD 是指当前分支的最新提交
然后进行合并git merge orgin/分支名