0%

git使用指导

修改.gitignore文件方法

1
2
3
4
git rm -r  --cache 要忽略的文件
git add .
git commit -m 'update .gitignore'
git push -u origin master

修改commit的历史信息方法

情况一:修改最近一次commit的信息

  1. 使用git commit –amend进入命令模式修改信息
  2. ^O对应的快捷键 “ Ctrl + ‘O’ “
  3. M-D对应的快捷键 “ ALT + ‘D’ ”

情况二:修改最近更早些的commit的信息

  1. 使用git log命令查找要修改的commit信息

  2. 使用git rebase -i HEAD~N显示要修改的信息, N表示最近的n个commit,结果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    pick 27be481ff feat(ne101): SSBSP-998: Create the ne101 project
    pick 679632f15 fix(bug):SSBSP-1018:modify dr mode

    # 变基 27be481ff..584136761 到 27be481ff(2 个提交)
    #
    # 命令:
    # p, pick <提交> = 使用提交
    # r, reword <提交> = 使用提交,但修改提交说明
    # e, edit <提交> = 使用提交,进入 shell 以便进行提交修补
    # s, squash <提交> = 使用提交,但融合到前一个提交
    # f, fixup <提交> = 类似于 "squash",但丢弃提交说明日志
    # x, exec <命令> = 使用 shell 运行命令(此行剩余部分)
    # b, break = 在此处停止(使用 'git rebase --continue' 继续变基)
    # d, drop <提交> = 删除提交
    # l, label <label> = 为当前 HEAD 打上标记
    # t, reset <label> = 重置 HEAD 到该标记
    # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
    # . 创建一个合并提交,并使用原始的合并提交说明(如果没有指定
    # . 原始提交,使用注释部分的 oneline 作为提交说明)。使用
    # . -c <提交> 可以编辑提交说明。
    #
    # 可以对这些行重新排序,将从上至下执行。
    #
    # 如果您在这里删除一行,对应的提交将会丢失。
    #
    # 然而,如果您删除全部内容,变基操作将会终止。
    #
    # 注意空提交已被注释掉

    注:这里显示pick的顺序是最早的提交显示在上面

  3. 这里要不要修改的commit对应的pick改为edit或者e,退出保存。

    1
    2
    edit 27be481ff feat(ne101): SSBSP-998: Create the ne101 project
    pick 679632f15 fix(bug):SSBSP-1018:modify dr mode
  4. 这里会提示你使用git commit –amend修改信息,改完之后使用git rebase –continue完成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    nova2021@nova2021-ThinkStation-K-C2:~/work/ne100_r1$ git rebase -i HEAD~3
    停止在 27be481ff... feat(ne101): SSBSP-998: Create the ne101 project
    您现在可以修补这个提交,使用

    git commit --amend

    当您对变更感到满意,执行

    git rebase --continue
  5. 使用git push命令将修改提交到远端,如果push中提示下列信息,则执行git push -f origin SSBSP-998(不推荐)

    1
    2
    3
    4
    5
    6
    7
    8
    git push origin SSBSP-998
    提示下列信息:
    To 192.168.3.224:ne100-embedded-dev/ne100_r1.git
    ! [rejected] SSBSP-998 -> SSBSP-998 (non-fast-forward)
    error: 无法推送一些引用到 'git@192.168.3.224:ne100-embedded-dev/ne100_r1.git'
    提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
    提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
    提示:'git push --help' 中的 'Note about fast-forwards' 小节。
  6. 网上也推荐使用下列操作解决上述问题, 但没有实测

    1
    2
    git fetch origin  
    git rebase origin/SSBSP-998

更新远端分支的代码修改方法

  1. 追踪远程分支
1
git checkout -b dev902 origin/SSBSP-902-merge
  1. 更新代码的修改

  2. git add “修改的文件”

  3. git commit -m “xxxx”

  4. git push origin HEAD:SSBSP-902-merge(在git中,HEAD是一个特殊的指针,它通常指向当前检出的分支的最新提交。HEAD可以被视为一个移动的标签,它始终指向当前所在的提交)