git学习笔记

这篇博客详细介绍了Git的各种操作,包括项目提交树上的移动、切换分支、rebase与merge的区别、撤销变更的方法,以及远程操作和遇到的问题。强调了git rebase在保持线性提交历史中的重要性,并分享了在创建Pull Request后处理多余文件的经验。
摘要由CSDN通过智能技术生成

常看常新吧
学习网址 learngitbranching.js.org
借鉴博客:http://blog.haohtml.com/archives/18265
在这里插入图片描述

项目提交树上移动

是否分离HEAD?

不分离:HEAD->你正在其基础上进行工作的当前分支最近提交记录(当前分支位置=HEAD位置),分支总是指向自己的最近提交记录(当然也有指令强行让他指向别的地方)
分离:eg git checkout 位置
指示一个提交记录的位置

  • 相对记录 master^ HEAD^^ HEAD~3
  • 哈希值 见git log

git checkout

git checkout branch 切换分支
git checkout 位置 分离HEAD,移动HEAD

对分支的理解

指针,指向最近记录,所以和HEAD都可以做相对引用的参照。
理解:我想基于这个提交以及所有父提交进行新的工作
git branch -f master HEAD~3 强行移动分支,让他指向别的地方
-f 强行让分支指向另一个提交

PR:pull request实际就是分支对分支,一次PR,之后在分支上动手即可

git rebase 和 git merge

git rebase:线性的提交记录
git merge:两个爹
多用git rebase
这个还有深入学习的余地,常看常思考
git rebase 提交记录仍存在,看起来顺序开发实际并行开发。

撤销变更

git reset

本地,分支回退,该写历史,仿佛未提交

参数

git reset三个参数
另外大家嫌不好记得话,只要记住执行 soft 模式后(回到stage暂存区状态),如果再次将原来的文件添加到仓库的话,需要git commit 一个命令就可以了。而 mixed 模式(回到workspace状态)需要执行git add 和 git commit 两个命令。对于 hard 模式来说是一种硬恢复,导致部分数据丢失,尽量不要用(可以使用git reflog 来恢复)。

同时如果想将此文件从索引区中取消的话,只需要执行 git reset HEAD <文件> 命令就可以了

git revert

远程
在这里插入图片描述
在这里插入图片描述

git cherry-pick 提交号(hash)

git rebase -i
不常用,记录一下

远程操作

origin/master

保持同步,与远程repo通信
git branch -r可以看到remote 分支

获取

git fetch
git fetch
不够,最终的目的是合并,上传,能用。
不能直接git push
git fetch+git rebase
git pull = git fetch+git merge
git pull --rebase =git fetch +git rebase

远程仓库

  1. git remote git remote -v看远程仓库
  2. git remote add 添加远程仓库
  3. git remote show <remote仓库名>
  4. git remote rename 原来名字 新名字 重命名
  5. git remote rm xxx
  6. git remote update

git remote update will update all of your branches set to track remote ones, but not merge any changes in.
git fetch will update only the branch you’re on, but not merge any changes in.

工作遇到的问题

建立pr之后发现commit有一个多余文件
查阅资料之后做了如下操作

git reset --mixed HEAD~1
git add xxx
git commit -m '  '
git stash

git stash 不想要脏提交但是这个文件也不想commit又不能直接删
(这一部分理解不深刻,以后继续深入)
git rm --cached vs git rm vs rm
本地不删stage暂存区删
本地删,提交纪录删
本地删,提交记录没管 rm之后可git rm

总结

继续深入学习吧
工作中遇到了记录一下
工具,善用,不要被他束缚,捆绑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值