网站排名优化技术,app制作软件教程,网站建设中怎样设置背景,孝感市门户网1、工作区、暂存区、仓库 工作区#xff1a;电脑里能看到的目录。
暂存区#xff1a;工作区有一个隐藏目录.git#xff0c;是Git的版本库#xff0c;Git的版本库里存了很多东西#xff0c;其中最重要的就是称为stage#xff08;或者叫index#xff09;的暂存区#xf…1、工作区、暂存区、仓库 工作区电脑里能看到的目录。
暂存区工作区有一个隐藏目录.git是Git的版本库Git的版本库里存了很多东西其中最重要的就是称为stage或者叫index的暂存区还有Git为我们自动创建的第一个分支master以及指向master的一个指针叫HEAD。
仓库远程服务器中的项目。
2、git版本控制
git版本控制一般有两个命令 reset 和 revert。reset 代表将当前节点“销毁”回退节点还存在就像不存在一样revert 代表创建一个新的节点其中记录我要删除当前节点。其中reset 中有 三个参数需要注意
--mixed 默认参数重置暂存区的文件与上一次的提交(commit)保持一致工作区文件内容保持不变。--soft 回退到某个版本。--hard 撤销工作区中所有未提交的修改内容将暂存区与工作区都回到上一次版本并删除之前的所有信息提交。执行 git reset HEAD
执行 git revert HEAD
撤销修改
对文件做了修改现在需要撤销修改
git restore 文件名或者git checkout -- 文件名如果文件已经add但还没commit可以使用以下命令撤销add恢复到上一步状态
git restore --staged file或者git reset HEAD 文件名如果已经commit需要删除文件
1、被提交到仓库的某个文件需要删除可以使用 git rm 命令
git rm file
git commit -m 2、如果只想从暂存区删除文件本地工作区不做出改变可以
git rm --cached file3、分支管理
3.1 创建/删除分支
一般 master 分支用于发布版本开发都是其他他分支上进行也会存在一些 bugFix 分支feature 分支用于开发未来的功能。创建分支有以下三种命令
git branch 分支名git checkout -b 分支名git switch -c 分支名删除分支
git branch -d 分支名3.2 分支管理策略
分支管理一般基于三个命令进行分别未 merge、rebase、cherry-pick
3.2.1 merge
merge的合并方式默认是 fast-forward即将master 指针直接指向当前节点。例如我们创建 readme.txt 文件并且add 和 commit此时创建分支 dev , 此时git 的 graph 如下
git switch -c dev我们对readme.txt 文件做修改并切换到 master 分支使用 git merge dev 命令git 的graph 如下
可以看到 git 并没有创建新的节点而是将 master 指针快速移动到了dev分支如果要保存开发记录我们可以显示禁用掉 fas-forward 模式 即在merge 后加上参数 --no-ff
git merge --no-ff -m 说明文字 分支名此时git的graph如下可以看到git创建了一个新的节点继承了dev分支。
3.2.2 rebase
rebase比较有意思翻译成中文名叫”变基“我个人把他理解成剪切就像 ctrl x 一样将当前分支黏贴到目标分支。这是原始的 graph。
我们使用以下命令
git switch Featuregit rebase master此时git 的 graph 变为下面模样
可以看到feature分支接到了master后面。需要注意的是rebase 提供了 -i 参数是”剪切”变得更加灵活可以自己尝试一下。那么 rebase 和 merge 的区别在哪里
假如master和feature开发了不同的功能即两个分支没有文件冲突和3.2.1的情况不一样dev分支继承在master分支此时我们执行命令
git switch mastergit merge feature此时git的 graph 如下所示
3.2.3 cherry-pick
这个命令就比较简单了他就相当于复制节点到当前分支。 需要注意的是我们在合并前都需要git commit 将暂存区的内容提交到分支中。 4、标签
分支可以移动当一个节点打上标签后这个标签就在这个节点上不会移动。那么我们只需要记住一些命令就好了
#创建标签
git tag 标签名 commit_id#指定标签信息
git tag -a tagname -m blablabla...#删除标签
git tag -d 标签名#推送某个标签到远程
git push origin xxxx#删除远程标签,需要首先删除本地标签
git tag -d 标签名
git push origin :refs/tags/标签名5、push、pull、fetch
如果要与远程仓库交互就需要用到这三个命令其中 pull 是 fetch 和 merge 的结合。
5.1 fetch
fetch 是从远程仓库抓取 origin/master 节点
git fetch origin/[branch]5.2 pull
git pull 远程主机名 远程分支名:本地分支名5.3 push
将本地仓库推送到远程仓库
git push 远程主机名 本地分支名:远程分支名如果本地分支名与远程分支名相同则可以省略冒号
git push 远程主机名 本地分支名删除远程仓库分支
git push origin --delete mastergit push origin :分支名6、其他命令
git status 查看状态git diff 查看文件改动git loggit stash暂存当前工作区相对引用git checkout master^2切换父节点
追踪远程分支
git checkout -b 本地分支 远程分支git branch -u 远程分支 本地分支7、git log
显示分支图
git log --graph --prettyoneline --abbrev-commit
8、关闭远程链接
git remote remove origin