提交代码
1 |
git commit -m "aaa" |
创建并切换分支
1 |
git checkout -b bugFix |
merge
1 2 |
// 把goal_branch内容合并到当前分支上来 git merge goal_branch |
rebase
1 2 |
// 把当前分支内容合并到goal_branch分支上 git rebase goal_branch |
HEAD
- 指向你正在其基础上进行工作的提交记录
- HEAD 总是指向当前分支上最近一次提交记录
HEAD相对引用
1 2 3 4 5 6 7 8 |
// 向上移动一个提交 git checkout main^ // 向上移动4个提交 git checkout HAED~4 // 强制让某个分支指向到某次提交上 git branch -f bugFix c0 |
reset
- reset通过把分支记录回退几个提交记录来实现撤销改动
- reset向上移动分支,原来指向的提交记录就跟从来没有提交过一样
- reset对远程分支是无效
1 |
git reset HEAD^ |
revert
- 为了撤销更改并分享给别人,就需要使用revert
1 |
git revert c2 |
cherry-pick
- 知道提交记录的哈希值时,可以把一些提交复制到当前所在的位置(HEAD)的下面。
1 |
git cherry-pick c2 c4 |
交互式rebase
- 交互式rebase指的是
rebase --interactive
,简写rebase -i
。会打开一个UI界面列出将要被复制到目标分支的备选提交记录,还会显示每个提交记录的哈希值和提交说明。
1 |
git rebase -i HEAD~4 |
只取一个提交记录
本地栈式提交
- 某个分支上有调试信息,只拿调试完后去掉调试信息的一个提交。
1 2 3 |
git rebase -i main git rebase bugFix |
或者
1 2 3 |
git checkout main git cherry-pick c4 |
提交的技巧1
- 相对以前的某个提交记录进行一些小小修改。
1 |
git rebase -i HEAD~2 |
1 |
git commit --amend |
1 |
git rebase -i HEAD~2 |
1 2 |
git checkout main git rebase caption |
提交的技巧2
1 2 |
git checkout main git cherry-pick c2 |
1 2 |
git checkout c1 git checkout c2' c3 |
1 |
git branch -f main HEAD |
tag
- 永久地将某次特定的提交命名为里程碑,然后可以像分支一样引用。
- 不会随着新的提交而移动。
1 2 |
git tag v0 c1 git tag v1 c2 |
describe
- 用来描述离当前最近的tag
1 2 3 4 5 6 7 |
git describe main // v0_2_gC2 git describe side // v1_1_gC4 |
多分支rebase
1 2 3 4 |
git rebase main bugFix git rebase bugFix side git rebase side another git branch -f main another |
两个父节点
1 |
git checkout main^ |
1 |
git checkout HEAD~^2~2 |
1 |
git branch bugWork HEAD~^2~ |
纠缠不清的分支
1 2 3 4 5 6 7 |
git checkout one git cherry-pick c4 c3 c2 git checkout two git cherry-pick c5 c4' c3' c2' git branch -f tree c2 |
clone
origin
fetch
- 从远程仓库下载本地仓库中缺失的提交记录。
- 更新远程分支指针。
- fetch并不会改变你本地仓库的状态。
pull
- 先抓取更新再合并到本地分支。
push
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Git_状况汇总03/19
- ♥ Git 版本回滚10/02
- ♥ 【华东师大版七年级上册】02/26
- ♥ 一_关于WebRtc在Windows下VS2019环境下的配置经验09/30
- ♥ Macos编译x86_64相关一04/25
- ♥ COM组件_101/31