git 使用方法
git 优雅的文件管理方式,特点是支持历史版本 、团队协助等功能
本地仓库
1、基础命令
| 命令 | 说明 |
|---|---|
| git commit | 提交当前节点的文件版本 |
| git branch | 创建分支指针 |
| git checkout 节点 | 切换节点指针 |
| git merge 节点 | 合并节点指针,可以合并所有的数据 |
| git rebase 节点 | 不同的分支,不是一条顺序的序列。而rebase可以将当前节点复制到另外的列表中,而后指针指向上一个节点,同一个列表的情况下,会整合到一起,最新的节点 |
| git reset | 返回到上一个版本 |
2、高级命令
HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。
这里看起来是列表的头指针(head) ,head一般指向当前最近节点的指针,head - > bugFix ->c1,也可以设置为指向节点本身,色荷治方法为,git checkout c1,就变成了head -> c1
而更丰富的操作移动head节点的方法有2点:
git checkout 当前节点^ , ^代表向上分离head到上一个节点
git checkout HEAD~4,~代表向上分离head到第4个节点
git branch -f main HEAD~3,代表强制执行head的前三个节点(main指针回退到前三个节点)
git branch -f 指针名 节点名,可以直接指定指针到到某个节点,真牛啊
git reset:在本地指针回退到上一个节点
git revert : 指针回退到上一个节点,并分享给被猎人这一操作 (新增一个节点,然后指针重新指向新节点,类似于新增,别人也能看到)
3、移动提交记录
git cherry-pick(精心挑选) <提交号> 在我当前指针指向节点位置,抓取别处分支列表的节点过来
交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i
git rebase -i HEAD~4 GUI 可视化拖动
4、杂项
git commit --amend 是一个强大的 Git 命令,用于修改最近一次的提交
git tag 一般是标记重要的版本更新、或者修正重要的BUG
远程仓库
| 命令 | 说明 |
|---|---|
| git clone | 克隆远程仓库 |
| git fetch | (拿,下载不是同步)远程仓库获取数据,从远程仓库下载本地仓库中缺失的提交记录,git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。 |
| git pull | (拉取) 下载后,自动合并仓库,并提交创建新的分支 |
| git push | (推动) 负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录 |
历史偏离问题:已经更新了代码,但是其他人针对共同的内容修改,已经提交了版本,这个时候push(指向其他人更新版本前的版本)是无法提交了
解决偏离问题的方法:下载下来之后,手动rebase调整自己的版本为最新的节点,最后再提交
优化的方法:
git merge (合并,自动把远程的版本当成现有节点的祖先)
更优化的方法:
git pull --rebase;git push 直接拉取自动合并
git push source :指定了节点的提交记录的来源和去向
git push origin <source>:<destination> :指定不同过的源和目的地
git fetch origin source : 去到指定的分支上,下载本地不存在的提交
评论