专为技术写作人员提供的七条 Git 技巧( 二 )


$ git fetch --all --prune3、将可能的更改从 upstream/master 拉取到你的本地 master 分支 。git pull 命令将跟踪的分支上的提交复制到当前分支 。这用于将你的本地 master 分支“更新”为远程(在本例中为 GitHub)master 分支的最新状态 。
$ git pull4、将你的分支 变基rebase 到 master 。
$ git switch my_branch $ git rebase -i master 我在 master 分支上意外地提交了代码1、创建一个分支来保存你的工作:
$ git switch -c my_feature2、切换回 master 分支:
$ git switch master3、回退 master 分支上的最后一次提交:
$ git reset --soft HEAD~14、切换回 my_feature 分支并继续工作:
$ git switch my_feature 我想修改我的提交消息1、如果你的分支只有一次提交,可以使用 git amend 来修改你的最后一次提交:
$ git commit --amend这假设你没有将其他文件添加到暂存区(即,没有运行过 git add My_File,并且没有进行提交) 。
2、使用 --force 选项将你的 “更改” 推送到 GitHub,因为 Git 提交消息是你现有提交的一部分,所以你正在更改分支上的历史记录:
$ git push --force 我想重新整理单个分支上的多个更改1、可选但强烈推荐:从 GitHub 获取更改 。
$ git switch master $ git fetch $ git pull这确保你将其他更改按照它们被合并到 master 中的顺序直接合并到你的分支中 。
2、若要重新整理你的工作,请对你的分支进行变基并根据需要进行更改 。对于将分支变基到 master,这意味着你需要更改你的分支上第一个提交的父提交:
$ git rebase --interactive master【专为技术写作人员提供的七条 Git 技巧】使用你喜欢的编辑器打开变基交互界面,将第一个单词 pick 替换为你要修改的提交 。
使用 e 来对你的提交进行实际更改 。这会中断你的变基操作! 使用 f 将一个提交与其父提交合并 。使用 d 完全删除一个提交 。移动行以改变你更改的顺序 。成功进行变基后,你自己的提交将位于 master 上最后一个提交的顶部 。
我想从其他分支复制一个提交1、从稳定分支(例如名为 3.3 的分支)获取提交的 ID,请使用 -n 选项限制提交数量:
$ git log -n 5 3.32、通过挑选提交来复制更改到你的分支 。-x 选项将提交的 ID 添加到你的提交消息中 。这仅建议在从稳定分支挑选提交时使用:
$ git switch My_Branch $ git cherry-pick -x Commit_ID 更多技巧在 ATIX,我们运行一个 GitLab 实例,用于内部共享代码、协作以及自动化测试和构建 。对于围绕 Foreman 生态系统的开源社区,我们依赖于 GitHub 。
我建议你始终将名为 origin 的远程指向你的内部的版本控制系统 。这样做可以防止在纯粹凭记忆进行 git push 时向外部服务泄露信息 。
此外,我建议使用固定的命名方案来命名远程 。我总是将指向自己的 GitLab 实例的远程命名为 origin,将指向开源项目的远程命名为 upstream,将指向我在 Github 上的复刻的远程命名为 github 。
对于 foreman-documentation,该存储库具有相对较平的历史记录 。当处理更复杂结构时,我倾向于以非常可视化的方式思考 Git 存储库,其中节点(提交)指向线上的节点(分支),这些分支可以交织在一起 。图形化工具如 gitk 或 Git Cola 可以帮助可视化你的 Git 历史记录 。一旦你完全掌握了 Git 的工作原理,如果你更喜欢命令行,可以使用别名 。
在进行具有大量预期合并冲突的大型变基之前,我建议创建一个“备份”分支,以便你可以快速查看差异 。请注意,要永久删除提交是相当困难的,因此在进行重大更改之前,请在本地 Git 存储库中进行测试 。
Git 对技术文档编写者的帮助Git 对技术文档编写者来说是一个巨大的帮助 。不仅可以使用 Git 对文档进行版本控制,还可以与他人积极地进行协作 。




推荐阅读