说明

  • “~” 跟 “^” 区别
    • ^ caret ~ tilda
    • git checkout HEAD^^^和git checkout HEAD~3等价,都代表当前版本的前3个版本
    • 区别在于3和~3代表不同概念,3代表回退一个版本,以第三条graph线为准。
    • 操作符 ^ 与 ~ 符一样,后面也可以跟一个数字。但是该操作符后面的数字与 ~ 后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个父提交。
  • 当head没有指到任何本地分支上就会脱离。
  • git bisect start [终点] [起点]
    • 二分法排错,”终点”是最近的提交,”起点”是更久以前的提交。它们之间的这段历史,就是差错的范围。
    • git bisect start HEAD 5d67e3
    • 使用git bisect good 和 git bisect bad来标识,直到找到xxx is the first bad commit
    • git bisect reset # 退出查错,回到最近一次的代码提交,就可以进行改错了

本地操作

git rebase cat # 把目前分支叠在cat分支后面
git rebase cat dog # 把dog分支叠在cat分支后面
git rebase -i 互动式rebase

git checkout -b 分支名 # 切换分支,如果分支不存在则建立
git checkout -b 分支名 commitID # 切换分支,如果分支不存在则以commitID建立
git checkout -b temp origin/master # 如果temp分支不存在,则新建分支temp,并关联到origin/master

git branch 分支名 commitID # 建立分支
git branch -f 分支名 commitID # 对于存在的分支强制还原到某次提交
git branch -u o/main notMain # 关联本地notMain分支到远程分支o/main

git tag tag名 commitID # 打tag
git cherry-pick c1 c2 c3

git merge # 产生一次合并记录
git revert # 产生一次撤销记录

远程仓库操作

git pull 到头来就是 fetch 后跟 merge 的缩写。你可以理解为用同样的参数执行 git fetch,然后再 merge 你所抓取到的提交记录。

git pull origin <place>
git pull origin <source>:<destination> 
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

git push origin <place> # 远程分支不存在会自动创建,下同
git push origin <source>:<destination> # 这里的source指的是本地分支,destination是远程分支
git push origin :foo # source留空,代表删除远程仓库分支foo

git fetch # 下载远程仓库文件到本地,更新本地的所有远程分支
git fetch origin <place> # 本地分支不存在会自动创建,下同
git fetch origin <source>:<destination> # 这里的source指的是远程分支,destination是本地分支
git fetch origin :foo # 如果source为空,则在本地以当前HEAD创建一个foo分支

原文地址:http://www.cnblogs.com/reamd/p/16856382.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性