2020-11-26

Git 的基本使用

Learn Git Branching

官方地址

KeyWord

  • 沙盒
  • 快照

Git Command

Git Commit

Git 仓库中的提交记录保存的是你的目录下所有文件的快照。条件允许的情况下,它会将当前版本与仓库的上一个版本进行对比,并把所有差异打包到一起作为一个提交记录。
Git 还保存了提交的历史记录,所以大多数提交记录上都有父节点。

  • git commit

Git Branch

Git 的分支非常轻量。他们只是简单地指向某个提交记录。 歌之颂之:早建分支!多用分支!创建再多的分支也不会造成存储和内存上的开销,并且按照逻辑分解工作到不同的分支要比维护那些臃肿的分支简单多了。
再将分支和提交记录结合起来后,我们就可以看到两者如何协作。现在只要记住使用分支其实就相当于再说:我想基于这个提交以及它所有的父提交进行新的工作。

  • 分开操作:

    • git branch
    • git checkout
  • 创建一个新分支并切换到新建的分支:

    • git checkout -b

分支与合并

现在探讨如何将两个分支合并在一起。现在遇到一个新的场景:新建了一个分支,在其上开发某个新功能,开发完成再合并会主线。

Git Merge

在Git中合并两个分支时会产生一个特殊的提交记录,他有两个父节点。翻译成自然语言:我要把两个父节点本身及他们所有的祖先都包含进来。
合并后的分支包含了对代码库的所有修改。

Git Rebase

分支合并的第二种方法。Rebase 实际上就是取出一系列的提交记录,"复制"它们,然后在另外一个地方逐个的放下去。
Rebase的优势是可以创造更线性的提交历史。如果只允许使用Rebase,代码库的提交历史将会变得异常清晰。
总结:这两条命令使用下来,感觉主语有点不一样, git merge 命令的主语是master, 作用是把记录合并到master。git rebase 的主语是bugFix,意思是把bugFix上的提交记录合并到master的未来节点,master 还要再 git rebase 这样就相当于HEAD回到了master的最新记录。

Git HEAD

HEAD 是一个对当前检出记录的符号引用,也就是指向你正在其基础上进行工作的提交记录。
HEAD 总是指向当前分支上最近一次提交记录。大多数修改树的 Git 命令都是从改变 HEAD 的指向开始的。
HEAD 通常情况下是指向分支名的。在你提交时,改变了分支的状态,这一变化通过HEAD变得可见。

  • git checkout

HEAD相对引用

使用相对引用的话,你就可以从一个易于记忆的地方开始计算。

  • 两个简单的用法
    • 使用^向上移动一个提交记录。
    • 使用~ 向上移动多个提交记录。
~操作符

如果你想在提交树中向上移动很多步的话,除了多次使用操作符,可以使用~操作符一次解决。~操作符后面可以跟一个数字(可选,不跟数字时与相同,向上移动一次),指定向上移动多少次。

  • git checkout HEAD~

强制修改分支位置

  • git branch -f HEAD~

Git 撤销变更

撤销变更由底层部分和上层部分组成。

  • git reset
  • git revert

Git Reset

git reset 通过把分支记录回退几个提交记录来实现撤销改动。 作用范围:本地分支

Git Revert

虽然在你的本地分支中使用 git reset 很方便,但是这种"改变历史"的方法对大家一起使用的远程分支是无效的。
所以,为了撤销更改并分享给别人,我们需要使用 git revert .









原文转载:http://www.shaoqun.com/a/493111.html

shopyy:https://www.ikjzd.com/w/1661

巴克莱银行:https://www.ikjzd.com/w/2775

c79:https://www.ikjzd.com/w/1016


LearnGitBranching官方地址KeyWord沙盒快照GitCommandGitCommitGit仓库中的提交记录保存的是你的目录下所有文件的快照。条件允许的情况下,它会将当前版本与仓库的上一个版本进行对比,并把所有差异打包到一起作为一个提交记录。Git还保存了提交的历史记录,所以大多数提交记录上都有父节点。gitcommitGitBranchGit的分支非常轻量。他们只是简单地指向某个
coles:coles
深兰科技:深兰科技
亚马逊站内广告的系统和逻辑化的运营思维:亚马逊站内广告的系统和逻辑化的运营思维
香港哪里可以买到手表?哪里有表行?:香港哪里可以买到手表?哪里有表行?
十一高速免费吗?:十一高速免费吗?

No comments:

Post a Comment