zoukankan      html  css  js  c++  java
  • git 的进阶用法

    学习记录贴:

    查看 branch 之间的关系图:

    git log --graph --decorate --oneline --simplify-by-decoration --all

    -–decorate 标记会让git log显示每个commit的引用

    -–simplify-by-decoration 只显示被branch或tag引用的commit

    -–oneline 一行显示

    原贴位置:https://juejin.im/post/5ed7b02fe51d457867169a7b?utm_source=gold_browser_extension

    echo > 输出重定向

    echo >> 追加重定向

    如果有两个不同的分支,则 git merge 对于记录它们合并的时间非常有用

    在正常工作中,git rebase 更为合适

    设置沙盒,进行模拟实验

    git init /tmp/rebase-sandbox

    cd /tmp/rebase-sandbox

    git commit --allow-empty -m'Initial commit'

    如果遇到麻烦,运行 rm -rf /tmp/rebase-sandbox 即可

    修正最近提交 amend

    git commit -a --amend 

    -a 自动将所有 git 已经知道的文件进行缓存

    --amend 将更改的内容压扁到最近的提交中

    git show 查看修复的提交

    修复比较旧的提交 fixup

    git rebase -i HEAD~3

    git rebase -i master  // 快速遍历所有提交

    git rebase -i origin/master // 编辑所有尚未合并到上游的提交

    1)、此命令会打开文本编辑器,显示最近的三次提交

    2)、修改相应的需要合并的提交的 pick  为 fixup(可以使用 f 来进行缩写)

    3)、并移动到需要修复的提交之后。

    4)、修改完成后,保存并退出编辑器

    5)、使用 git log -2 --oneline 查看日志,验证结果(-2代表最近的两次日志)

    -i 代表交互式

    HEAD~3 代表最近的三次提交

    将多个提交压扁为一个 suqah

    1)、git rebase -i master

    2)、将除第一行外的每个 pick 改变为 squash 压扁,保存并退出

    3)、修改提交信息,保存并退出,然后检查 git 日志

    git pull --rebase

    在由上游更新的分支(例如:远程分支)上做一些提交,git pull 会创建一个合并提交,默认等同于

    git fetch origin <barnch>

    git merge origin/<branch>

    假设本地分支 <branch> 配置为从原始远程跟踪 <barnch> 分支,即:

    git config branch.<branch>.remote

    git config branch.<branch>.merge 

    如下方式会让历史记录更清晰:git pull --rebase,基本等同于

    git fetch origin

    git rebase origin/<barnch>

    将变基方式作为默认行为:git config --global pull.rebase true

    变基git rebase

    使用 rebase 命令可以使我们的提交历史更干净简洁。

    master 分支和 <branch>分支同时修改一个文件时,rebase 解决冲突完之后,还能保证分支干净简洁

    git rebase <branch>

    当遇见冲突时,首先解决冲突

    然后 git add .

    然后继续 rebase 合并:git rebase --continue

    git merge --abort 中止合并

    git rebase --onto master feature-1 feature-2

    变基前:变基后:

     git 撤回 commit:git reset

    撤回上一个版本:git reset HEAD^   git reset HEAD~

    撤回上 n 个版本:git reset HEAD~n

    默认参数:--mixed 删除工作空间改动代码,撤销commit,并且撤销git add,但是修改的代码不会被删除

    --soft 撤销 commit,不撤销 add 

    --hard 删除巩固走空间改动代码,撤销 commit,并且撤销 add

     git 撤回 add: reset

    撤回 add 提交:git reset HEAD

    git 将本地分支推送到远程并设置为上游分支:

    git push --set-upstream origin 本地分支

    git 设置本地分支的上游分支:

    git branch --set-upsteam-to origin/远程分支 本地分支

  • 相关阅读:
    116填充每个节点的下一个右侧节点指针
    115不同的子序列
    114.二叉树展开为链表
    LeetCode 面试题55
    LeetCode 110. 平衡二叉树
    LeetCode 152. 乘积最大子数组
    LeetCode 面试题58
    LeetCode 151. 翻转字符串里的单词
    LeetCode 25. K 个一组翻转链表
    LeetCode 面试题61. 扑克牌中的顺子
  • 原文地址:https://www.cnblogs.com/z-one/p/13050228.html
Copyright © 2011-2022 走看看