版本管理工具git 使用【本地操作篇】

Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit 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中对应字母的含义

A你本地新增的文件(服务器上没有).
C文件的一个新拷贝.
D你本地删除的文件(服务器上还在)
M文件的内容或者mode被修改了
R文件名被修改了
T文件的类型被修改了
U文件没有被合并(你需要完成合并才能进行提交)
X未知状态(很可能是遇到git的bug了,你可以向git提交bug report)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值