git命令
git学习练习
·
基础
- git commit 提交
- git branch newbranch 创建新分支
- git branch newbranch HEAD~^2 在HEAD提交记录的上一级的第二个父节点处创建新分支
- git checkout -b newbarnch 创建并切换到新分支
- git checkout newbranch 切换到新分支
- git merge newbranch 合并新分支到当前分支
- git rebase c1 合并当前分支到c1(更清晰,更线性)
高级
- 在提交记录之间移动,HEAD是对当前分支的符号引用,总是指向当前分支最近一次提交记录,提交则改变了HEAD指向,HEAD指向分支名称
- cat.git/HEAD或git symbolic-ref HEAD 查看HEAD指向
- git checkout 提交记录,分离HEAD(哈希值不方便,基于SHA-1,共40位),使HEAD指向该提交记录
- 操作符(^)
- git checkout main^ 切换到main的父节点
- git checkout main^^ 切换到main的父节点的父节点
- git checkout main^2 多个提交时,将切换到指定数字的提交记录上去,数字表示第几个父提交
- 操作符(~)
- git checkout main~4 向前切换到main的第四个父节点
- git branch -f main HEAD~3 使用-f将分支强制移动到某个位置
- git branch -f main C6 将main分支切换到C6的提交记录上
- git checkout HEAD^22 链式操作
- 撤销变更
- git reset 通过把分支记录回退几个提交记录来实现撤销改动,向上移动分支就像没有提交过一样,改写历史
- git revert 是提交一次新的记录用来撤销之前的内容,使得最新记录与改动的上一次记录一致
移动提交记录
- git cherry-pick c2 c4 将c2 c4提交记录复制到当前分支的当前提交记录之后(c2 c4位哈希值)
- git rebase -i HEAD~4 会打开一个对话框显示4条提交记录,改变位置保存后会改变提交记录
杂项
- 提交技巧
- 在旧提交记录上修改
- git rebase -i HEAD~2 交换两次提交记录
- git commit --amend 提交修改
- git rebase -i HEAD~2 再交换回来
- git branch -f main c1 将main提交记录切换到c1上,即最新提交记录
- 在旧提交记录上修改
- 标签tag
- git tag v1 c1 创建指向c1提交记录的标签v1,不加c1则默认指向HEAD位置
- git describe <分支名称> 输出结果为:tag名称_与当前提交记录的距离__当前提交记录
- git bisect 查找产生bug的提交记录的指令
高级话题
远程
- git clone 克隆远程仓库
- git fetch 从远程仓库获取数据&更新远程分支指针
- git pull 等同于git fetch+git merge
- git push 推送到远端
- git fetch; git rebase origin/main; git push 拉取最新代码合并到本地解决冲突再推送到远端,使用rebase是将本地工作移动到了最新提交记录下,再推送,服务器上显示一条记录
- git fetch; git merge origin/main; git push 拉取最新代码合并到本地解决冲突再推送到远端,使用merge是将最新代码合并到本地分支下,再推送,服务器上显示两条记录
- git pull --rebase; git push 为第5、6条的缩写
//
git fakeTeamwork foo 3
学习网址:
Learn Git Branching:https://learngitbranching.js.org
Pro Git(中文版):https://gitee.com/progit/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)