软件工程师

Git ABC - 01

2020-05-17  本文已影响0人  杨斌_1024

概述

git是一种分布式版本控制软件。

Git is an example of a distributed version control system (DVCS) commonly used for open source and commercial software development. DVCSs allow full access to every file, branch, and iteration of a project, and allows every user access to a full and self-contained history of all changes. Unlike once popular centralized version control systems, DVCSs like Git don’t need a constant connection to a central repository. Developers can work anywhere and collaborate asynchronously from any time zone.

常用命令

创建分支: git branch new-branch-name
切换分支: git checkout new-branch-name
本地提交: git commit
本地新建一个当前分支的副本并切换过去:git checkout -b new-branch-name
合并new-branch-name分支到当前分支:git merge new-branch-name
merge本质是两个branch的合并,最终生成一个新的提交记录,而这个提交记录是一个拥有两个父节点的提交记录。
第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去(Paste)。
把当前分支rebase到master分支:git rebase master

rebase原理

高级命令

在你项目的提交树上前后移动的几种方法
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
查看当前HEAD的指向:git symbolic-ref HEAD 输出refs/heads/currentBranch
切换到 master 的父节点: git checkout master^
使用 ~<num> 向上移动多个提交记录,如 ~3: git checkout master~4
将 master 分支强制指向 HEAD 的第 3 级父提交: git branch -f master HEAD~3
主要有两种方法用来撤销变更 —— 一是 git reset,还有就是 git revert。
git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。
为了撤销更改并分享给别人,我们需要使用 git revert
如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。
把别的分支的C1,C2提交复制到当前分支:git cherry-pick C1 C2
交互式的 rebase:交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i,如果你在命令后增加了这个选项, Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改:git rebase -i HEAD~4
对某个以前的提交记录进行一些小小的调整:使用rebase -i或者cherry-pick,然后--amend,可以完成。

分离HEAD 切换到 master 的父节点 Git Reset Git Revert cherry-pick git rebase -i HEAD~4 本地栈式(暂时)提交 对某个以前的提交记录进行一些小小的调整(amend,可能造成rebase冲突) 对某个以前的提交记录进行一些小小的调整(使用cherry-pick)
参考Git用法,线上练习git命令
上一篇下一篇

猜你喜欢

热点阅读