git命令行学习一

6 篇文章 0 订阅
6 篇文章 0 订阅

git命令行练习地址:git命令行练习地址

基础命令行操作

Git Commit

提交修改记录,将暂存区的文件提交到本地仓库

git commit -m'提交的备注信息'
//修改最新一次提交的备注信息
输入命令
git commit --amend
按i键,进去编辑状态,可以将之前的备注信息删除,输入新的备注信息
按esc键,退出编辑状态,最后按:wq,回车退出,即可完成

Git Add

将工作区的文件提交到暂存区

Git Branch

创建分支,指针跟着切换

//查看分支
git branch
//当前在master分支
//创建
git branch <分支名>
git branch bugFix
//删除分支,用于删除最新提交记录已和其他分支合并过的分支,如果删除,将丢失掉提交的修改;若合并过后再删除该分支,所做的修改还存在
git branch -d <name>
//强制删除
git branch -D <name>
//强制修改分支指向位置(移动分支),可以直接使用 -f 选项让分支指向另一个提交;
git branch -f <branch> <要移动到的位置>
git branch -f master HEAD~3//会将 master 分支强制指向 HEAD 的第 3 级父提交。
//设置指定本地dev分支与远程origin/dev分支进行关联
git branch --set-upstream-to <branch-name> origin/<branch-name>
//将当前本地分支和远程仓库分支进行关联
git branch --set-upstream-to origin/<branch-name>

找回已删除的分支

//查看操作记录,拿到该记录的code
git reflog
//在该记录处重新创建新分支
git branch 分支名 code值

在这里插入图片描述

Git Checkout&&Git Switch

//切换分支
git checkout <切换到分支名>//<commit id>可以切换到任意节点(提交记录),然后创建新分支
git checkout bugFix
//创建并切换分支
git checkout -b <分支名>
git checkout -b bugFix
//在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
git checkout -b dev origin/dev//创建dev分支,并关联到远程仓库中的dev分支
//撤销修改
git checkout -- <file>//切换到对应的目录下
//清空当前分支下工作区所有内容(还未add到暂存区)
git checkout .
//将暂存区(add之后,未commit)的内容放回工作区
git reset .
//切换到指定分支
git switch master
//创建dev分支并切换过去
git switch -c dev

Git Stash

储藏

//将当前工作区的修改储藏起来,一般应用于新功能开发到半,还不想提交,但是要去另一个分支修bug时使用。
git stash save 'xxxx'//自定义命名
git stash//默认命名
//查看所有储藏
git stash list;//有多个时列表按照stash@{n+}顺序列
//应用储藏方式一:
//stash内容并不删除
git stash apply;//只有一个
git stash apply stash@{n};//有多个储藏,添加stash@{n}参数,n为指定的储藏序号。{}需要反引号 ` 进行转义如:git stash apply stash@`{0`}
//删除stash
git stash drop//有一个活多个储藏,使用方式与上面的apply一样
应用储藏方式二:
git stash pop//恢复的同时把对应的stash内容也删了,后面不带参数(stash@{n})时。有多个储藏,会先应用最近的一次储藏,以此往后推

Git Merge

合并两个分支时会产生一个新的特殊的提交记录,新的提交记录有两个父节点。指针指向新的提交记录

//当前在master分支
git merge <分支名(将这个分支合并到当前分支,合过来)>
//将bugFix分支合并到master分支,master分支含有bugFix分支的修改内容,新产生的提交记录在master分支上
git merge bugFix

未合并
未合并前
合并后:执行git merge bugFix
在这里插入图片描述
练习
在这里插入图片描述

//先创建并切换到bugFix分支
git checkout -b bugFix
//提交一条记录:C2
//git commit
git commit -m '在bugFix分支上提交一条记录'
//再切换到master分支并提交一条记录:C3
git checkout master
git commit -m '在master分支上提交一条记录'
//再将bugFix分支合并到master分支上,产生一条新的记录:C4
git merge bugFix

Git Rebase

Rebase 的优势就是可以创造更线性的提交历史。产生一个新的提交记录,只有一个父节点。

//当前在bugFix分支
git rebase <分支名(将当前分支合并到这个分支,合过去)>
//将bugFix分支合并到master,所产生的的新提交记录的父节点是在master分支上
git rebase master
//rebase另外用法
//将分支2合并到分支1(如果两个分支有相同的提交记录,则只取其中之一)
git reabse <分支1> <分支2>
//变基处理
git rebase --continue    // 手动处理完冲突后,需要继续处理冲突时会用到(继续下一步)
git rebase --abort       // 放弃本次变基,回退到git pull之前的状态
git rebase --ship        // 删除本次commit的代码,慎用
命令行输入:wq按回车键退出即可。

未合并
在这里插入图片描述
合并后:执行git rebase master
在这里插入图片描述
再次合并:切换到master分支,再执行git rebase bugFix
在这里插入图片描述
练习:
在这里插入图片描述

//先创建并切换到bugFix分支
git checkout -b bugFix
//提交一条记录:C2
//git commit
git commit -m '在bugFix分支上提交一条记录'
//再切换到master分支并提交一条记录:C3
git checkout master
git commit -m '在master分支上提交一条记录'
//再切换到bugFix分支
git checkout bugFix
//合并到master,并产生一条新记录:C2`
//注意,提交记录 C2 依然存在(树上那个半透明的节点),而 C2' 是我们 Rebase 到 master 分支上的 C2 的副本。
git rebase master

提交记录移动

HEAD

HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。
分离的 HEAD 就是让其指向某个具体的提交记录而不是分支名
操作前
在这里插入图片描述
操作后:执行

git checkout C1;git checkout master;//这两个可以不操作
git commit;git checkout C2

在这里插入图片描述
操作前:
在这里插入图片描述
操作后:执行git checkout C1
在这里插入图片描述
练习:
在这里插入图片描述

//分离出HEAD
git checkout C4

相对引用

哈希值:基于 SHA-1,共 40 位;
通过指定提交记录哈希值的方式在 Git 中移动不太方便,相对引用从一个易于记忆的地方(比如 bugFix 分支或 HEAD)开始计算。
使用 ^ 向上移动 1 个提交记录,放在引用参照后面,如master^,移动到
使用 ~ 向上移动多个提交记录,如 ~3

^练习

操作前:
在这里插入图片描述
操作后:执行git checkout master^
在这里插入图片描述
操作前
在这里插入图片描述
操作后:执行

git checkout C3
git checkout HEAD^
git checkout HEAD^
git checkout HEAD^

在这里插入图片描述
练习
在这里插入图片描述

//切换到bugFix分支
git checkout bugFix
//有多个方法实现
//1.
git checkout bugFix^
//2.
git checkout C3

~练习

操作前
在这里插入图片描述
操作后:执行git checkout HEAD~4
在这里插入图片描述
强制修改分支位置(移动分支),可以直接使用 -f 选项让分支指向另一个提交;
例如:git branch -f master HEAD~3:会将 master 分支强制指向 HEAD 的第 3 级父提交。
操作前
在这里插入图片描述
操作后:执行git branch -f master HEAD~3
在这里插入图片描述
练习:
在这里插入图片描述

//移动master
git branch -f master C6
//移动bugFix
git branch -f bugFix C0
//移动HEAD
git checkout C1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值