git学习记录

网站学习链接:https://learngitbranching.js.org/?locale=zh_CN

经验贴:https://zhuanlan.zhihu.com/p/383960650

  • git brach -b <branchName> 新建一个branchName分支,并切换到那个分支
  • git checkout branchName^ 使得HEAD指向branchName的前一个分支,有几个^就代表前移几个,如果branchName 有多个parent,那么^num 就是指选择跳到第几个parent
  • git checkout branchName~2 使得HEAD指向branchName 的前2个分支,如果没有后面的数字就是默认1
  • git checkout HEAD~^2~2 ,git branch -f bugWork HEAD~^2^git的操作符还支持链式操作
  • git revert用于撤销提交,生成一条新的提交来覆盖之前的修改,保留修改历史,语法:git revert <commit> ,其中,<commit>要撤销的提交的哈希值或引用
  • git reset用于重置分支的指针,可以选择保留或丢弃之前的修改,改变提交历史,语法:git reset <commit> ,其中,<commit>要重置到的目标提交的哈希值或引用
    • -soft:重置分支的指针,但不改变工作区和暂存区的内容。之前的修改将被保留在暂存区中,你可以随时重新提交它们
    • -mixed(默认选项):重置分支的指针,并清除暂存区的内容。之前的修改将保留在工作区中,但不会自动提交
    • -hard:重置分支的指针,并清除暂存区和工作区的内容。之前的修改将完全丢失,慎用该选项
  • 使用git reset会改变分支的提交历史。如果你在公共分支上使用git reset,并将其推送到远程仓库,可能会导致其他人的问题。因此,在公共分支上通常更推荐使用git revert
  • git rebase <branch> <based_branch> 可以指定将branch对based_branch进行rebase
  • git cherry-pick commit1 commit2 可以将两个commit放到HEAD后面,注意commit的顺序就是这里排列的顺序
  • git rebase -i HEAD~4 是一个 Git 命令,用于以交互方式进行历史提交的重新整理(rebase)。该命令允许你修改最近的 4 个提交,可以根据需要修改这些操作命令。常见的操作命令包括 “pick”(保留提交)、”edit”(修改提交)、”reword”(修改提交信息)、”squash”(合并提交)等
  • git rebase
  • git branch -f main caption 用于将分支main的指针强制移动到指定的提交caption
  • git commit --amend是一个用于修改最近一次提交的Git命令
  • git tag tagName commitName 给c1提交赋上v0标签
  • git push origin <tagname> 将tag推送到远程
  • git describe <commit> 如果不指定<commit>,则默认使用当前所在的提交。如果这个<commit> 有标签就输出相应的标签,如果没有就会去找最近的标签,生成一个描述,格式为<tag>-<num>-g<hash>,其中<tag>是最近的标签,<num>是指定提交与最近标签之间的提交数,<hash>是指定提交的简短哈希值
  • git fetch 会获取远程厂库的所有分支的所有提交记录,并把orgin/xxx 指向对应的远程提交,但是它并不会更改本地的内容还有本地的分支
  • git pull 实际上是git fetchgit merge的合集,它会获取远程更新并与当前对应分支合并
  • git pull --rebasegit fetchgit rebase 的合集,它会获取远程更新并对其进行rebase
  • git push 实际上会merge本地拷贝的origin/xxxx分支然后再提交
  • git checkout -b foo origin/main 可以把foo和远程分支origin/main绑定起来
  • git branch -u o/main foo 使得foo分支直接绑定远程分支main,如果当前分支就是foo,就可省略foo
  • git branch -m <old_branch_name> <new_branch_name> 可以修改branch的名字
  • git push origin main 将本地 main 分支的提交推送到远程仓库 origin 的 main 分支的命令
  • git push origin <source>:<destination> 将本地 <source> 分支的提交推送到远程仓库 origin 的 <destination> 分支的命令。这样可以将本地的修改共享给其他协作者,并将本地分支映射到远程仓库的不同分支。source既可以是branch的名字也可以是某个指定的提交位置例如HEAD~2
  • git fetch origin <source>:<destination> 将远程的厂库originsource分支更新到本地destination分支。注意source也是既可以是分支名也可以是某个指定的提交位置。注意这样子的o/xxxx分支不会进行变化
  • git push origin :side 会删除远程的side分支
  • git fetch origin :bugFix 会在本地创建一个bugFix分支
  • git pull origin foo 相当于:git fetch origin foo; git merge o/foo
  • git pull origin bar~1:bugFix 相当于:git fetch origin bar~1:bugFix; git merge bugFix

git学习记录
http://example.com/2023/11/04/git学习记录/
作者
John Doe
发布于
2023年11月4日
许可协议