Git学习第二天

Git学习第二天

分支的重要操作,stash的用法,以及版本回退

分支的概念

首先针对commit操作,就会形成一条完整的工作时间线,新的版本会指向旧的版本。

分支的出现会把工作时间线分叉,可以创建多个分支,比如:master分支、dev分支。

值得注意的是:无论在哪个分支,HEAD始终指向当前分支。HEAD文件存放目录在.git文件夹中。

分支的重要操作

1.查看分支

git branch

2.创建分支

git branch newBranch

3.切换到newBranch分支

git checkout  newBranch

4.删除分支newBranch

git branch -d newBranch
#不能删除当前所在的分支,得先切换到别的分支
#若被删除的分支有文件改动,可以使用 git branch -D newBranch 强制删除

5.创建new_branch,并切换到该分支

git checkout -b new_branch

6.将修改的new_branch分支文件合并到master

git branch master
git merge new_branch

7.对分支进行改名

git branch -m master master2
#将master改名为master2

8.显示当前分支的最新一条信息

git branch -v

9.以图形化的方式查看提交历史

git log --graph

分支使用的几种场景

1、master分支上创建dev分支,在dev分支做修改后,直接合并到master分支

git checkout -d dev

#在dev分支上进行一系列文件的操作...

git checkout master

git merge dev

在这里插入图片描述

git自动合并,使用fast-forward模式。

但是这种模式有个弊端,删除分支时会丢掉分支信息。可以在合并时加上–no-ff参数禁用fast-forword,这样会多出一个commit id,比如:git merge --no-ff dev。不过,这种使用的场景不多,因为没有必要。

2、master分支上创建dev分支,在dev分支做修改后,再在master上做修改,然后合并dev分支

git checkout -d dev

#在dev分支上进行一系列文件的操作...

git checkout master

#在master分支上进行一系列文件的操作...

git merge dev

#文件test.txt冲突,解决冲突

git add test.txt

git commit

在这里插入图片描述

3、切换分支,不是切换到某个已命名的分支(如:master、dev),而是切换到某个具体的提交(如:9sa68),修改后提交成为新分支,再切换为master分支。

git checkout 9sa68
#当前HEAD会指向9sa68

#在9sa68上进行一系列文件的操作...

git cimmit -m 'commit 9sa68'
#此处提交会形成一个新的提交,如:81sed5。若不提交,直接切换回master,会报错

git checkout master

git branch newCommit 81sed5
#对81sed5这个提交创建一个分支名,叫newCommit

在这里插入图片描述

4、当前在dev1分支上开发,开发了一半,按规范没法提交。又被要求去分支dev2上做一个临时的紧急开发,开发完dev2后,再回来继续开发dev1

git branch dev1

#在dev1上开发

git stash save 'temp save'
#临时保存当前的开发进度。若不保存,直接切换到dev2,会报错

git branch dev2

#在dev2上开发,结束后切换回dev1

git branch dev1

git stash list
#查看在dev1上所有的临时保存

git stash pop
#恢复最近的一次保存,并将该保存删除

git stash apply
#恢复最近的一次保存,但并不删除该保存。若想删除序号为0的保存,git stash drop stash@{0}

git stash apply stash@{1}
#恢复序号为1的保存,但并不删除该保存

#在dev1上继续之前的开发

版本回退

1.回退到上一个版本

git reset --hard HEAD^

git reset --hard HEAD~1

2.回退到前一个版本

git reset --hard HEAD^^

git reset --hard HEAD~2

3.回退到具体某个版本(可以是前面的版本,也可以是后面的版本)

git reset --hard 1aa8ds

#1aa8ds表示具体某个commit_id

4.查看操作日志

git reflog

#git log只能看到前面的提交日志,但是git reflog可以看到前后所有的commit_id
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值