系统学习Git


Git 是一个开源的分布式版本控制系统

工作区、暂存区和版本库分别是什么?

  • 工作区:在电脑里能看到的目录
  • 暂存区:也叫索引,一般存放在 .git 目录下的 index 文件中
  • 版本库:隐藏目录 .git,是 Git 的版本库。

在这里插入图片描述

Git常用命令有哪些?

在这里插入图片描述

  1. git add:添加文件到暂存区。将代码写入到对象库中的一个新对象中,将该对象ID记录到暂存区,并更新目录树

  2. git commit:提交暂存区到版本库。将目录树写入版本库,master分支指向新的目录树

  3. git reset --hard HEAD^ :回退到上一个版本,慎用,参数介绍见下

    • mixed:为默认值,等同于git reset。将文件回退到工作区,此时会保留工作区中的文件,但会丢弃暂存区中的文件;
    • soft:将文件回退到暂存区,此时会保留工作区暂存区中的文件;
    • hard:将文件回退到修改前,此时会丢弃工作区暂存区中的文件;
  4. git tag -a v1.0:打个标签

  5. 其他命令,相对好理解

Git是如何进行分支管理的?

  1. 一个分支代表一条独立的开发线。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

  2. 实例:

$ ls
README
$ echo 'runoob.com' > test.txt
$ git add .
$ git commit -m 'add test.txt'
[master 3e92c19] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
$ ls
README        test.txt
$ git checkout testing
Switched to branch 'testing'
$ ls
README

解释:在master分支上提交更新,在testing分支看不到,就是我们想要的结果

  1. 一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。
git merge (branchname)	//合并分支
git branch -d (branchname)	//删除分支
  1. 合并冲突:当同一个文件被两个分支都修改过,此时合并报错,需要修改。

  2. Git分支指向的过程描述:参考文章

    • 三个指针:master,dev,HEAD

    • 新创建一个从分支devmaster不动,HEAD指向dev,一直保持在提交的最前沿

在这里插入图片描述

  • 合并后,master指向当前devHEAD指向master

在这里插入图片描述

  1. 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。切换分支就是移动HEAD。

Git如何查看提交历史?

  1. git log --oneline //查看提交历史简洁版本
    
  2. git log --reverse --oneline //逆向查看
    
  3. git log --author=Linus --oneline -5 //查看Linux用户的操作
    
  4. git blame README //查看一个文件的全部过程
    

实践出真知!

尝试了才知道实践的重要性,推荐新建一个文件夹,用git创建一个本地仓库,每步操作后到不同的分支下ls,看看有什么变化。光看理论确实没有动手效果更好。

  1. git init后不会生成master分支,commit后才有!和菜鸟教程上说的似乎有点出入~
  2. 不论在主分支master还是从分支test创建文件,另一个分支都会做同样的事情
  3. 谁commit保留谁的文件,删除另一个分支中本次提交的文件。如:在test中commit,test保留此次提交的文件,master中相应文件删除。终于解释了:每个分支代表一条开发线,必须commit!

CodeSheep:分支管理

报错

fatal: pathspec ‘text1.txt’ did not match any files

先更新本地仓库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值