云原生 - Git
工作最常用的 git 命令
Git
第 1 章 Git 本地常用命令
1.1 提交快照
git 仓库中的提交记录保存的是你的目录下所有文件的快照,使用以下命令创建一个新的提交记录:
git commit
如果在提交时要写备注信息,使用:
git commit -m
如果要将新修改的内容追加到上一次提交中,使用:
git commit --amend
1.2 创建和切换分支
查看所有的远程分支:
git branch -r
查看所有的本地分支和远程分支:
git branch -a
创建一个新分支 bugFix:
git branch bugFix
创建一个新分支 bugFix 并切换到该分支:
git checkout -b bugFix
切换到 bugFix 分支:
git checkout bugFix
1.3 合并分支
D --- E bugFix
/
A -- B --- C --- F main
当我们在 main 分支上,想要合并 bugFix 分支的内容时,可以使用以下两种命令:
git merge bugFix
git rebase main bugFix
执行 merge 会得到以下树:
D ---------- E
/ \
A -- B --- C --- F --- G bugFix, main
执行 rebase 会得到以下树:
A -- B -- D -- E -- C -- F bugFix, main
rebase 操作不会生成新的节点,并且两个分支线性合并。
1.4 删除分支
当我们想要删除已经合并过的 bugFix 分支:
git branch -d bugFix
当我们想删除还未合并的 bugFix 分支:
git branch -D bugFix
1.5 强制修改分支位置
如果我们想要强制让 main 分支指向 bug Fix 的父节点:
git branch -f main bugFix^
如果我们想要强制让 main 分支指向 bug Fix 的第 3 级父节点:
git branch -f main bugFix~3
1.6 撤销变更
如果我们想要在本地分支中将当前分支回退 2 个提交记录实现撤销变更,使用:
git reset HEAD~2
如果我们想要实现撤销变更,同时能够同步到远程分支,使用:
git revert HEAD
它会在要撤销的提交节点后面新增一个节点,该新节点的状态与你想要撤销到的节点状态相同。我们将该新节点推送到远程仓库即可实现同步。
第 2 章 Git 远程常用命令
2.1 克隆现有仓库
通过仓库的 url 克隆远程仓库,并自定义本地仓库名字:
git clone <url> <repo-name>
2.2 从远程仓库下载本地仓库缺失的提交记录
将本地仓库缺失的提交记录从远程仓库中下载下来,但不会合并到本地仓库中:
git fetch
2.3 下载远程仓库的内容并更新到本地仓库
将本地仓库缺失的提交记录从远程仓库 remote-repo 的 local-branch 中下载下来,并合并到本地仓库的同名分支中:
git pull <remote-repo> <local-branch>
如果想要合并到指定分支,使用:
git pull <remote-repo> <remote-branch>:<local-branch>
2.4 推送到远程仓库并合并
将本地 local-branch 分支推送到远程仓库 remote-repo 的 remote-branch 分支中:
git push <remote-repo> <remote-branch>:<local-branch>
如果想要将本地 local-branch 分支推送到远程仓库 remote-repo 的同名分支中,使用:
git push <remote-repo> <local-branch>
如果我们周一克隆远程仓库进行开发,周五开发完毕。但是其他同事已经将他们的提交推送到远程仓库,我们的工作基于旧版本,与远程仓库最新版本不匹配。这种情况下,我们使用以下几个命令:
git pull --rebase
git push
2.5 创建一个本地分支跟踪远程仓库的 main 分支
git checkout -b <branch-name> origin/main
第 3 章 Git 开发高阶
3.1 整理提交记录
如果想要在 main 分支下得到其他分支的提交记录(比如哈希值为 C1 和 C2 的提交记录),使用:
git checkout main
git cherry-pick C1 C2
3.2 交互式 rebase
如果想要在 main 分支下得到当前分支的提交记录,但不清楚记录的哈希值,使用交互式 rebase 命令。比如我们想要整理当前提交节点到其第 2 级父节点的 3 个提交记录:
git rebase -i HEAD~3
我们可以在打开的 UI 界面做 3 件事:
- 调整提交记录的顺序
- 删除不想要的提交
- 合并提交记录
在实际开发中,我们的分支 bugFix 的提交记录中包含调试、打印语句,这些提交记录我们不希望进行合并。我们就可以通过 git rebase -i 将它们删除,只保留修复好 bug 后的代码。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)