持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
git 基础操作
git 区域:
工作区 ->暂存区 -> 本地仓库 -> 远端仓库
工作区:
我们平时新增文件就会处于工作区,在工作区中的文件无法被Git 追踪 所以我们需要 git add 命令将我们的文件添加进暂存区
暂存区:
保存了下次将提交的文件列表信息
本地库:
存放我们从暂存区提交的信息,我们Push的时候就是将本地仓库的版本推送到远程仓库,在这儿之前的操作都是不用依靠网络来完成,这就是所谓分布式的一大特点。
远程仓库:
我们通过Push命令会将我们本地仓库的版本代码推送到远程仓库,远程仓库会替我们管理代码,并且我们在任意客户端上可以将代码Clone下来进行开发
操作整体代码
前提:基于当前分支的操作
- 将代码从工作区加入暂存区,一般用在新添加文件
git add
- 将代码从暂存区加入本地仓库
git commit -m "日志内容" or git commit
- 将代码从本地仓库加入远端仓库
git push
- 将远端同一分支代码合到本地分支
git pull origin/main
- 刷新远端代码记录,不会有任何代码操作
git fetch
操作分支
- 基于HEAD指针创建新分支
git branch newBranch
- 基于HEAD指针切换已创建的分支
git checkout newBranch
- 基于HEAD指针创建并切换新的分支
git checkout -b newBranch
操作节点
- 基于当前HEAD指针指向的节点需要合并其他分支代码,就是将其他分支代码合并至当前HEAD指向的节点
git merge newBranch
- 基于当前HEAD指针指向的节点代码复制到其他分支,就是将当前节点的代码复制到指定分支
git rebase main
- 基于当前HEAD指针指向的节点代码复制到其他节点,就是将当前节点的代码复制到指定节点
git rebase 节点hash值
总结:merge和rebase想要得到的结果名义上相同,但是merge是将代码完全合并形成共有节点,但是rebase是将代码复制到目标节点,不会新形成一个新的节点。
- 基于当前HEAD指针并移动
// 指针上移一位
git checkout HEAD^
// 指针上移数位
git checkout HEAD~2
// 指针移动至指定位
git checkout 节点hash值
- 基于当前HEAD指针并回退本地仓库(reset),如果代码未提交到远端,回退前的节点将被移除
// 保留变更代码至暂存区
git reset -soft 节点hash值
// 不保留变更代码至暂存区
git reset -hard 节点hash值
// 保留变更代码至工作区
git reset -mixed 节点hash值
- 基于当前HEAD指针并回退远端仓库(revert),代码会将指定回退点的代码
git revert 节点hash值
学习操作
Git学习沙盒:learngitbranching.js.org/?locale=zh_…
Git沙盒模拟:git-school.github.io/visualizing…