git-gerrit-learning
git-gerrit-learning copied to clipboard
git 和 gerrit 的学习总结
## 你不知道的 在 `Git` 中,有两种标签,一种是 **轻** 标签,另一种是 **注释标签**。 ## 轻标签 一个 **轻** 标签在技术上只不过是一个分支,除了我们把它放在 `.git/refs/tags/` 子目录中而不是调用它`head` 。 > 所以下面的命令: ``` git tag godkun-first-tag ``` 只是将当前 `HEAD` 写入 `.git/refs/tags/godkun-first-tag` 文件,然后就可以使用此符号名称作为该特定状态。 > 比如,可以执行下面命令:...
## 绑定github账号 设置全局用户名和 `email` ,作为每次提交的记录 ``` git config --global user.name “name" git config --global user.email “mail.com” ``` ## 添加一个仓库 ``` git remote add origin git@….git git push -u origin master...
## 介绍 `rebase` 就是重新定义你分支的起点,分支上的 `commit` 将生成对应的新的 `commit` , 并放在你指定的新的起点 `commit` 后,分支上的老 `commit` 将被删除。 ``` git rebase ``` 将 `base` 做为你当前分支的新起点,这个 `base` 可以是任何一种 `commit` 引用( 如 `ID` , `brand` 名, `tag`...
## 场景 如果你切一个分支后,发现这个分支上没有上个分支的内容,然后想把前一个分支的某个提交合并到当前分支。 ## 解决 先切到上个分支,查看需要合并的 `commitId` 值 ``` git checkout xxx ``` 然后: ``` git cherry-pick ```
## 写在最前 这里我直接用例子去说明一个功能的开发,其最佳实践是什么,比如我开发一个四级页固定套餐。 > 第一步: 新建开发分支 `feature/fourth-taocan` ``` git checkout -b feature/fourth-taocan ``` > 第二步 所在分支是 `feature/fourth-taocan` ,然后进行开发,总共进行了4次提交,如下: ```bash git commit -m '第一次提交' git commit -m '第二次提交' git commit -m...
### git log 和 git status 的区别 - `git status` 能让你检查工作目录和 `stage` 区的状态。 - `git log` 只提供被 `commit` 到 `head` 的一些历史信息。 ### git log `git log` 命令用来显示提交的快照, 能列出来你项目的历史。 > 使用默认格式...
## 两种合并方式 - 快速合并 ` fast-forward` - 三方合并 `thirdparty merge` ## fast-forward > 什么意识呢?我拿远端 `master` 和 本地的 `master` 分支做一个说明 远端 `master` 分支或者本地 `master` 分支中的一个没有前进,从而当另一方在合并的时候,是直接在当前的分支上向前前进了,从而没有生产新的 `commit` 。 ## thirdparty merge >...
## 是最近一次的 commit 使用 ``` git commit --amend ``` > 注意: - 不要对一个公共的 `commit` 使用 `amend` 。 - `amend` 后生成的 `commit` 是一个全新的 `commit`,之前的老的 `commit` 会从项目历史中被删除。 - 如果你 `amend` 了一个被其他开发者使用的 `commit`...
## 原因 是因为本地的 `origin` 目录没有同步远端更新。 ## 解决 执行 `git fetch` 把远程服务器上所有的更新都拉取下来。 然后就使用 `git branch -a` 查看最新远程说所有分支 。