git学习记录

git的是一款分布式的版本管理工具。
git的工作区是初始化git的项目文件夹
git的暂存区和分支称为git的版本库(本地仓库),它也在git项目文件夹中,我们不需要关注,只需要知道有暂存区和分支

git status:查看git的文件状态
git add .:将工作区所有文件添加到暂存区 点代表工作区的所有文件
git commit -m “描述信息”:将暂存区的文件添加到本地仓库

关于git的commit操作,每次commit都是一个新版本,会在当前分支上生成一个新的提交点,但是只有更新修改的文件才会保存在新的提交点,没更新修改的文件在新的提交点上保存的是它链接。

比如第一次创建a文件提交上传,在这个提交点上保存了a文件,第二次创建了b文件提交上传,没有修改a文件,在这个提交点上真正保存的只有b文件,但是a文件也是会显示在这个提交点上,只是它是保存的是一个a文件的链接

git remote add origin 远程仓库的https地址:关联远程仓库

关联远程仓库的时候需要输入远程仓库(码云 or GitHub)的账号密码,如果输入错误,可以去控制面板找到用户账户的window凭据修改

git push origin master:上传本地分支到远程仓库
git clone 远程仓库https地址:将远程仓库的项目拷贝到本地
git pull origin master:拉取远程仓库的文件
git branch:查看分支
git branch 分支名:创建分支
git checkout 分支名:切换分支

关于分支
每个分支都会有一个指针,新建一个分支,首先是新建一个指针
新分支的指针会和当前的分支的指针会指向同一个提交点,也就是新建的分支内容会和当前分支的内容一模一样。
新分支包含的内容就是从第一个提交点到分支指针指向的提交点
在这里插入图片描述

git log:查看完整提交日志
git log --oneline:查看简易提交日志
git log --oneline --graph:查看简易提交日志并画出简易的分支图
git merge dev:在当前分支合并dev分支

分支合并分为快速合并和三方合并
对于用哪种合并方式git会自己去选择,我们的合并指令是不变的
快速合并是把当前分支的指针移动到合并的分支指向的提交点上,但是这种情况只能是当前分支指针没有移动的情况下才能使用,也就是当前分支在合并分支之前没有提交过就可以使用快速合并。
快速合并前分支状态
在这里插入图片描述
三方合并是将当前分支的最新提交点和需要合并的分支提交点和在一起形成一个新的提交点
在这里插入图片描述

git checkout -b dev:创建dev分支并切换到dev分支

在git中有一个指针的概念,用 HEAD表示。HEAD 总是指向当前分支上最近一次提交记录。
HEAD 通常情况下是指向分支名的(如 master)。
HEAD也是可以分离出来的,分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。
每次commit提交都会有唯一的一个哈希码,在移动HEAD的时候需要根据哈希码移动,也可以用哈希码的前四位。没有分离的HEAD还是指向分支名的,我们也可以通过分支名去移动HEAD。

左边的是执行撤销操作后的分支图(红色)右边是执行前的分支图(蓝色)

git checkout 1dfe:这条命令为把HEAD移动到提交记录哈希值1dfe的提交点上。
在这里插入图片描述
通过哈希码来移动HEAD太麻烦了,git给我们提供了更简单的方法
git checkout master^:把HEAD移动到master的上一个父节点
git checkout master^^:把HEAD移动到master的第二个父节点
在这里插入图片描述
用^一次只能移动一个提交点,为了更灵活的移动,git又引入了操作符 ~。
git checkout HEAD~4:向前移动四个提交点
在这里插入图片描述
git branch -f master HEAD~3:这个指令可以强制移动HEAD到某一个提交点
在这里插入图片描述
git reset HEAD~1:git把代码回退到了本地仓库的上一个提交点,在reset后, 本地仓库被撤销的提交点所做的变更还在,但是处于未加入暂存区状态。
git revert HEAD:对于reset的撤销是存在于本地的,对远程分支是无效的,为了撤销更改并分享给别人,我们需要使用 git revert。在执行了 git revert HEAD 以后,当前的提交点会被撤销并且会生成一个新的提交点,这个提交点和上一个提交点的内容是一致的。
在这里插入图片描述

git pull/merge origin master --allow-unrelated-histories:进行强制合并,允许不相关历史提交
git branch --set-upstream-to=origin/dev:设置默认push分支
git branch --unset-upstream dev:取消默认push分支

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值