| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 版本管理工具git 使用【本地操作篇】 -> 正文阅读 |
|
[开发工具]版本管理工具git 使用【本地操作篇】 |
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,命令从0开始,我们一一介绍。 【一.单分支情况】1.首先需要创建一个工作区git init 2.在工作区中修改或者编写新的文件 ?1)git add demo.txt到本地缓存之前和之后的状态【文章莫问git status中字符的含义】 2)此时我们修改demo.txt(已经提交到本地缓存了)? ?可以通过git diff 查看更改的地方 ?根据提示: 可以把跟新的提交到缓存, ?可以把更新的丢弃,【把gggg行删掉,然后git restore丢弃更新操作,因此还是有ggg行】 可以取消缓存 ?3.我们缓存中的数据提交到本地仓库 ?1)提交到本地仓库之后,如果我们对文件进行了更改,但是我们又后悔做了更改,通过git checkout 把文件从本地仓库拉去下来覆盖掉更改的文件 ?2)我们不小心删除了工作区文件和上面类似 也通过git checkout 从本地仓库中拉去下来 ?3)如果我们就想更改然后提交到本地仓库 第一种方式:重新做一次新的提交 ?第二种方式覆盖掉上一次提交的commit ID, 这样就不会有新的提交节点产生了【类似于原来提交的内容不完整,需要补充一些内容】 git commit --amend【提交前是有两个commit节点,提交后也有两个commit节点】 ?4.版本回退 1.0.1本的文件内容如图【记住这些commit ID】 git reset [--soft | --mixed | --hard] [HEAD] ?1) 撤销1.0.1这次提交 但是本地demo.txt内容没有变【git reset HEAD^】?本地仓库版本指针指向了1.0.0的节点。所以git checkout 下来的是1.0.0的demo.txt ?2)在version1.0.1中增加了一个文件demo2.txt【git reset HEAD^ 某个文件】 指定回退文件,回退 demo.txt 文件的版本到上一个版本,demo和demo2的文件内容并没有变更,同样需要checkout一下demo。【这种方式并没有撤销提交,只是版本指针从1.0.1移动到1.0.0】 ?如果又想把 demo 恢复到1.0.1版本,版本指针移动最新版本【同样不会更改本地文件内容】,需要在checkout一下demo 这就恢复回来了? ?3)【git reset --hard HEAD^】--hard?参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。【撤销这次提交 并且 代码也会恢复到上个版本,并不推荐这种回退方式】 ?4.删除命令? 1)git rm --cache 文件名【删除暂存区的文件,但工作区保留,推荐使用】 2)git rm -f 文件名【删除 工作区,暂存区,本地仓库的某个文件】 【二.多分支情况】1.我们需要基于某个版本另外创建一个分支branch。 1)git branch 查看本地分支情况 ?2)git branch slave1【在master 分支下运行,就是基于master分支的版本】 不同分支有不同的commit 提交记录,?我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。 slave1分支的commit记录 ?master分支的commit 记录 ?【并且工作区和缓冲区的内容是分支共享的,主要还是看在哪个分支进行提交,就属于那个分支】 ?在master提交之后,slave1分支就看不到这个shared_file文件了 ?3)删除分支【基于slave1创建的slave1_1, 在本分支上删除自己是不可以的,要到其他分支上】 ? 4)合并分支 1)基于slave1分支创建出slave2分支。在slave2分支中增加了demo_file2文件,并且对原来的demo_file文件进行了修改。 slave1分支的文件及内容 slave2分支的文件及内容 ? 合并slave1和slave2分支 2) 如果合并有冲突的话,就先解决冲突并在合并 ?基于slave1分支创建分支slave2,在slave2中修改demo_file文件并提交,在slave1中修改demo_file文件并提交,然后在slave1分支上合并slave2【需要手动的解决冲突】 ??我们可以用 git add 要告诉 Git 文件冲突已经解决 git status -s中对应字母的含义
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 14:51:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |